--- title: 浏览器渲染全流程解析 date: 2025-12-13 --- # 一、网络请求阶段 1. DNS 解析   浏览器先解析输入的网址对应的 IP 地址,先检查本地 DNS 缓存,若没有则向本地 DNS 服务器发起查询。最终通过 DNS 系统获取服务器的 IP 地址。 2. 建立网络连接(TCP/IP 握手)   通过三次握手建立客户端(浏览器)与服务器的 TCP 连接。若网址使用 HTTPS,还需完成 TLS/SSL 握手,确保数据加密传输。 3. 发起 HTTP/HTTPS 请求   浏览器向服务器发送请求报文,包含: - **请求行**:方法(GET)、URL、协议版本(如 HTTP/1.1)。 - **请求头**:包含浏览器信息(User-Agent)、缓存策略(Cache-Control)等。 - **若为 POST 请求**:还包含请求体数据。 4. 服务器处理请求   服务器接收到请求后,根据 URL 路由到对应的后端服务(如 Node.js、Java 等)。 - **若为 Vue3 项目**: * 若为单页应用(SPA),服务器通常返回一个通用的 `index.html` 页面(前端路由由 Vue Router 处理)。 * 若涉及 API 请求(如获取数据),服务器返回 JSON 格式的数据(如通过 Express、Spring Boot 等接口)。 5. 返回响应结果   服务器返回响应报文,包含: - **状态行**:状态码(如 200 OK、404 Not Found)。 - **响应头**:包含内容类型(Content-Type: text/html)、缓存控制(Cache-Control: max-age=3600)等。 - **响应体**: * 若为 `index.html`:返回 HTML 文本(包含 Vue3 项目的入口脚本引用,如 ``)。 * 若为 API 数据:返回 JSON 格式的数据(如用户信息、列表数据等)。 # 二、解析与执行阶段 1. 解析 HTML 并构建 DOM 树   浏览器逐行解析 HTML 内容,构建 **DOM 树**(Document Object Model)。 - 遇到 `` 标签时,异步加载 CSS 文件并构建 **CSSOM 树**(CSS Object Model)。 - 遇到 `