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 等数据附加到请求头中,然后向服务器发送构建的请求信息
==>服务器接收到请求信息后,会根据请求信息生成响应数据