浏览器的渲染原理
一、进程与线程
进程:进程是cup资源分配的最小单位(是能拥有资源和独立运行的最小单元)
一个进程就是一个程序的运行实例,启动一个程序时,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的一个主线程,我们把这样的运行环境叫进程
线程:线程是cpu调度的最小单位,线程是不能单独存在的,线程是由进程来启动和管理的。
二者区别:
1. 计算机资源独立分配到各个进程,进程之间互相独立,可以通信
2.一个进程由多个线程组成,是包含关系
3.同一进程下的各个线程之间共享程序的内存
4.不同进程之间也可以通信,不过代价比较大
为了提升浏览器的稳定性和安全性,浏览器采用了多进程模式。浏览器中打开一个网页就相当于起了一个新的进程(进程内会有自己的多线程)
二、浏览器中的进程
1.浏览器有5个进程:浏览器主进程、渲染进程、网络进程、GPU进程、插件进程。
2.其中渲染进程又有多个线程:GUI渲染线程、JS引擎线程(也成JS内核)、事件触发线程、定时器出发线程、异步http请求线程
三、从输入URL到浏览器显示页面发生了什么?
- URL解析
- 首先判断你输入的是合法URL还是一个带搜索的关键字,并且根据你输入的内容进行自动完成、字符编码等操作
- DNS 域名解析
- 建立TCP链接
- 发送HTTP 请求
- 响应HTTP 请求
- 页面渲染
- T CP四次握手