描述从输入 url 到页面展示的完整过程

40 阅读1分钟

步骤

网络请求

  • DNS 查询(得到 IP),建立 TCP 连接(三次握手)

  • 浏览器发起 HTTP 请求

  • 收到请求响应,得到 HTML 源代码

  • 解析 HTML 过程中,遇到静态资源还会继续发起网络请求

  • JS、CSS、图片、视频等

  • 注意:静态资源可能会有强缓存,此时不必请求

解析(字符串 -> 结构化数据)

  • HTML 构建 DOM 树

  • CSS 构建 CSSOM 树(style tree)

  • 两者结合,形成 render tree

image.png

渲染(Render Tree 绘制到页面)

  • 计算各个 DOM 的尺寸、定位,最后绘制到页面

  • 遇到 JS 可能会执行(参考 defer async)

  • 异步 CSS、图片加载,可能会触发重新渲染