一次请求的十个阶段
以访问 https://www.example.com/index.html 为例,完整链路是:
- URL 解析:浏览器拆出协议(https)、主机(www.example.com)、路径(/index.html)、端口(默认 443);
- DNS 查询:把域名解析成服务器 IP(含多级缓存检查);
- TCP 连接:与目标 IP 完成三次握手(443 端口);
- TLS 握手(HTTPS):协商加密参数、验证证书、生成会话密钥;
- 发送 HTTP 请求:构造请求报文发出;
- 服务端处理:Web 容器/应用处理请求,可能访问数据库;
- 返回 HTTP 响应:状态行、响应头、响应体(HTML);
- 解析 HTML:构建 DOM 与 CSSOM,加载引用的 CSS/JS/图片(回到第 5 步的子请求);
- 渲染:布局、绘制,页面呈现;
- 连接处理:HTTP/1.1 keep-alive 保持 TCP 连接复用,或一段时间后四次挥手关闭。
任何一步被卡住,都有对应的现象:DNS 慢 → 首字节迟迟不来;TCP/TLS 慢 → 连接建立耗时;响应体大 → 传输时间上升。