浏览器工作原理

106 阅读2分钟

1.仅仅打开了1个页面,为什么有4个进程?

==>浏览器是多进程架构

tips:GPU(图形处理器)是一种专门设计用于处理图形和图像计算的处理器。虽然最初设计为图形渲染的硬件,但由于其高度并行的特性,现在也广泛用于一般目的的并行计算,包括深度学习、科学计算等领域。

==>进程、线程的关系

==>早期单进程浏览器时代

==>目前多进程架构

解决:

1.不稳定的问题:通过相互隔离的进程

2.不流畅的问题:JavaScript 运行在渲染进程中

3.安全问题:安全沙箱

依旧有两点问题,更高的资源占用;更复杂的体系架构(耦合高、扩展差)

==>未来面向服务的架构(SOA)形式

2.TCP协议:【页面文件】送达到【浏览器】

为什么第二次加载的时候更轻松呢,更速度呢

衡量 Web 页面性能重要指标=> First Point

==>数据包如何送达主机

==>主机如何将数据包转交给应用

==>数据是如何被完整地送达应用程序

3.http请求流程

Q1:为什么很多站点第二次打开速度会很快?

主要原因是第一次加载页面过程中,缓存了一些耗时的数据,比如,【DNS缓存】和【页面资源缓存】这两块数据是会被浏览器缓存的

Q2:登录状态是如何保持的?

Cookie 数据

4.导航流程:从输入URL到页面展示,这中间发生了什么?

==>用户输入

==>通过【进程间通信(IPC)】把URL请求发送至网络进程

==>网络进程查找本地缓存是否缓存了该资源;有缓存资源,那么直接返回资源;

无资源,进入网络请求流程;

==> DNS 解析,获取请求域名的服务器 IP 地址

==>如果请求协议是 HTTPS,还需要建立 TLS 连接

==>利用 IP 地址和服务器建立 TCP 连接

==>浏览器端会构建请求行、请求头等信息,并把和该域名相关的 Cookie 等数据附加到请求头中,然后向服务器发送构建的请求信息

==>服务器接收到请求信息后,会根据请求信息生成响应数据