60 秒回答模板

一次 HTTP 请求可以从解析 URL 开始讲:客户端先判断协议、域名、端口、路径和参数,检查本地缓存;需要联网时先做 DNS 解析拿到 IP,再建立 TCP 连接,HTTPS 还要完成 TLS 握手和证书校验。连接可用后,客户端发送 HTTP 请求行、请求头和请求体,链路上可能经过代理、CDN、负载均衡和网关。服务端完成路由、鉴权、业务逻辑、缓存或数据库访问后返回状态码、响应头和响应体。客户端收到响应后处理缓存、Cookie、重定向、压缩和内容类型;浏览器场景下还会解析 HTML、加载子资源、构建 DOM/CSSOM、布局、绘制和执行脚本。

考点 网络分层与请求链路
难度 测开基础高频题
回答目标 按顺序讲完整链路

深入解析

01

先从 URL 和缓存开始

URL 决定协议、主机、端口、路径和查询参数。浏览器会先检查强缓存、协商缓存、Service Worker 或预连接等机制,命中时可能不发真实网络请求。

02

DNS 负责把域名变成地址

DNS 会经过浏览器缓存、系统缓存、本地 DNS、递归解析和权威 DNS 等层级。解析结果可能是源站 IP,也可能是 CDN 或负载均衡入口。

03

连接阶段要区分 TCP 和 TLS

HTTP/1.1 和 HTTP/2 常见于 TCP 之上,先三次握手建立连接;HTTPS 还要 TLS 协商版本、加密套件、证书链和会话密钥。HTTP/3 则基于 QUIC,连接模型不同。

04

HTTP 报文承载应用语义

请求由方法、路径、协议版本、请求头和请求体组成;响应由状态码、响应头和响应体组成。Cookie、Authorization、Content-Type、Cache-Control、Location 等头会影响鉴权、缓存、跳转和解析方式。

05

服务端处理不是一个黑盒

请求通常经过 CDN、反向代理、负载均衡、网关、中间件、应用服务、缓存、数据库和下游 RPC。超时、重试、限流、熔断和幂等都会影响最终结果。

06

客户端收尾决定用户可见结果

收到响应后,客户端要处理状态码、重定向、缓存写入、解压和内容解析。浏览器还要继续解析 HTML、发现子资源、执行 JS、构建渲染树并完成布局绘制。

易错点

  • 一上来只讲浏览器渲染,漏掉 DNS、连接、TLS 和服务端处理。
  • 把 DNS、TCP、TLS、HTTP 混成一层,无法说明每一层解决的问题。
  • 说 HTTPS 只是加密,漏掉证书校验、完整性保护和密钥协商。
  • 忽略缓存和重定向,导致“请求全过程”与真实浏览器行为不一致。

面试官追问

DNS 解析有哪些缓存层?

常见有浏览器缓存、操作系统缓存、本地 DNS 缓存、递归解析器缓存和权威 DNS 记录 TTL。命中缓存能跳过后续解析步骤。

HTTPS 比 HTTP 多了哪些关键步骤?

多了 TLS 握手、证书校验、密钥协商和加密传输。它提供身份认证、机密性和完整性,但也引入握手成本,可通过会话复用降低开销。

HTTP/2 为什么能提升并发请求效率?

HTTP/2 在一个连接上做多路复用,并使用二进制帧和头部压缩,减少 HTTP/1.1 多连接或队头排队带来的开销。但 TCP 层丢包仍可能影响整条连接。

请求超时时应该从哪些位置排查?

先看 DNS、连接、TLS、请求发送、TTFB、响应下载的分段耗时,再结合网关日志、应用日志、数据库慢查询、下游 RPC 和重试记录定位。