Skip to main content

网络

网络协议

https://www.cnblogs.com/vamei/archive/2012/12/05/2802811.html

  • 应用层
  • 运输层
  • 网络层
  • 数据链路层
  • 物理层

输入 url 到响应发生了什么

主要流程如下:

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