关于浏览器的基本原理浅析

浏览器进化的路线:
一是应用程序web化;
二是web应用移动化;
三是web操作系统化。新语言webassemble出现。

node.js是前端发展的一个核心推动力。

线程是依附于进程的,使用多线程的进程可以并行处理,提升运算效率。

进程中的任意一个线程执行出错,都会导致整个进程崩溃。
线程之间共享进程中的数据。
进程关闭后,操作系统会回收进程所占用的内存。
进程之间的内容相互隔离。

进程间通信是ipc机制。

2007年之前,浏览器都是单进程单线程的。网络、插件、js运行环境、渲染引擎和页面都是运行在同一个进程里面。
插件和渲染引擎模块容易导致浏览器进程奔溃;
单线程导致性能差;
插件一般使用c/c++编写,它们可以获取操作系统的其他资源,不安全。


chrome采用多进程架构:1个浏览器主进程、多个渲染进程、多个插件进程、1个网络进程、1个GPU进程
渲染进程、插件进程使用sandbox机制,保证安全性。
这种架构缺点是:资源占用率高、架构复杂扩展性差。

2016年谷歌团队提出SOA,面向服务的架构。原有各种模块被构建成独立的服务,每个服务独立进程中运行。

http请求流程:
构建请求
查找缓存
准备IP和端口
等待TCP队列
建立TCP连接(3次握手)
发起HTTP请求
服务器处理请求
服务器响应请求
断开TCP连接(4次挥手)


从用户发出URL请求到页面开始解析的过程叫做 导航
响应头可以控制浏览器的行为:如跳转、网络数据类型判断
chrome为每个标签启动一个渲染进程,如果页面属于同一站点,那么两个标签会共同使用一个渲染进程。


HTML 超文本标记语言,有标签和超文本组成。
CSS 层叠样式表,有选择器和属性组成。
JS,使用它来让网页内容动起来。

按照渲染时间的顺序,渲染流程包括以下这些阶段:构建DOM树、样式计算、布局阶段、分层、绘制、分块、光栅化和合成。

屏幕上页面的可见区域叫做 视口viewport
绘制仅仅是提供绘制指令
分块其实是切片,按照页面区域分成256*256或者512*512像素的块;
光栅化就是把分块的图块转换为位图。
使用GPU的话,会提示光栅化的速度,叫做GPU栅格化,或者快速栅格化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值