地址栏输入URL敲下回车后发生什么
答:
6. 页面渲染
1. 总体过程
2. URL解析
3. DNS查询
之前讲过(迭代查询), 获取目标服务器IP
4. TCP 连接
确定目标服务器IP地址后, 经历三次握手建立TCP连接
5. 发送HTTP请求
请求的内容包括:
6. 响应请求
行头空行体
7. 页面渲染
补充
补充:地址栏输入 URL 并回车后,浏览器依次经历「URL 解析 → DNS 解析 → TCP 连接 → 发送 HTTP 请求 → 服务器响应 → 浏览器解析渲染」六个阶段,下面按时间顺序串讲。
总体过程
- URL 解析:浏览器解析 URL 拿到协议、域名、端口、路径、查询字符串、hash,并对地址做编码/合法性检查。
- DNS 解析:浏览器 → 系统缓存 → 路由器 → ISP DNS → 根域 → 顶级域 → 权威域名服务器,迭代查到域名对应的 IP(可走 DoH/DoT 加密)。
- TCP 连接:与目标 IP 建立 TCP 连接,三次握手;若为 HTTPS 还要多一次 TLS 握手。
- 发送 HTTP 请求:构造请求行、请求头、请求体,HTTPS 下还会做加密。
- 服务器响应:服务器返回状态行、响应头、响应体;可能 301/302 触发重定向。
- 浏览器渲染:解析 HTML → 构建 DOM 树 → 解析 CSS 构建 CSSOM → 合并生成 Render 树 → 布局(Layout)→ 分层绘制(Paint)→ 合成(Composite)显示在屏幕上。
- 页面渲染优化:JS 执行可能在解析过程中触发 DOMContentLoaded / load 事件;CSS 阻塞渲染,JS 阻塞 DOM 构建;浏览器通过预解析、懒加载等手段提速。
URL 解析
↓
DNS 解析 → 拿到 IP
↓
TCP 三次握手 → (HTTPS 多一次 TLS 握手)
↓
发送 HTTP/HTTPS 请求
↓
服务器响应(可能重定向)
↓
浏览器解析 HTML / CSS / JS,渲染页面
补充:常见优化点包括 DNS 预解析(
<link rel="dns-prefetch">)、HTTP/2 多路复用、浏览器缓存(强缓存 / 协商缓存)、CDN 就近回源、关键 CSS 内联等。



