网络
网络协议
https://www.cnblogs.com/vamei/archive/2012/12/05/2802811.html
- 应用层
- 运输层
- 网络层
- 数据链路层
- 物理层
输入 url 到响应发生了什么
主要流程如下:
- 输入判断。判断输入为 URL 还是搜索内容,如果为 URL,就将 URL 通过 IPC(进程间通信)传给网络请求进程并由它发起请求。
- http 资源缓存检查。
- DNS 解析。解析域名并返回对应的 IP 地址,浏览器会做缓存。(如果是 https,还会建立 TLS 连接)
- TCP 连接。TCP 三次握手
- 发送 HTTP 请求。
- 服务器处理请求并返回响应数据给网络进程。解析响应头时,可能发生重定向。
- 浏览器进程接收到网络进程解析好的响应头数据,向渲染进程 提交文档
- 渲染进程和网络进程建立传输数据的管道
- 等文档数据传输完成,渲染进程会返回 确认提交 的消息给浏览器进程
- 浏览器进程收到确认提交的消息,会更新浏览器界面和 web 页面
- 浏览器解析渲染页面。
- 构建 DOM 树
- 样式计算。转换 css 文本为 styleSheets,并转换样式表中的属性值,使其标准化。计算 DOM 树种每个节点的具体样式
- 布局。计算 DOM 树种可见元素的几何位置
- 分层。
- 绘制。
- 栅格化。
- 合成和显示。
- 断开连接。TCP 四次挥手