从输入 URL 到页面显示经历什么

先理解原理和示例,再练习完整口述与追问。

按 URL 解析、缓存 / Service Worker 等拦截、名称解析、连接、请求响应、HTML 解析、资源加载、样式和布局、绘制合成说明。连接复用、缓存命中会改变链路;HTTP/3 使用 QUIC,不要把所有情况都说成 TCP。

导航先经过地址处理和可能的重定向、缓存或 Service Worker,再进行需要的 DNS、连接与安全协商。HTTP 响应可流式到达,浏览器解析 HTML 建 DOM、解析 CSS 建样式结构,计算布局后绘制与合成。脚本可能改变 DOM 并影响解析与渲染;资源预加载扫描也可能提前发现后续资源,所以不能把整个过程机械理解为完全串行。

定位首屏慢可拆为:DNS/连接慢 → TLS 或 TTFB 慢 → HTML 到达后关键 CSS/JS 阻塞 → 大图加载慢 → 主线程执行太久。Network 看请求时序和缓存,Performance 看脚本、布局与长任务,服务端日志看响应耗时。已有连接复用时不必重新握手,命中缓存时也不必完整回源。

DOM 建好不代表所有图片和业务数据就绪。HTTP/3 使用 QUIC 而非简单“先 TCP”;HTTPS 也不能统一解释成旧版 RSA 握手。

浏览器先解析 URL,并可能经过 Service Worker 或缓存处理;需要网络时解析域名,复用或建立连接,再发请求和接收响应。HTTPS 常涉及 TLS,HTTP/3 使用 QUIC,不能把所有连接都说成 TCP。收到 HTML 后浏览器逐步解析,发现资源后加载,构建样式与布局,绘制并合成;脚本、样式和资源优先级会影响过程。缓存命中、连接复用和预加载会省略或提前部分步骤,所以这条链路不是每次完整重走。