在浏览器开发者工具(F12)的 Network > Timing 面板中,这三个术语对应 HTTP 请求的核心生命周期阶段,按执行顺序排列为:Resource SchedulingConnection StartRequest/Response。下面用通俗的语言+技术细节拆解每个阶段的含义、作用和关键指标:

一、Resource Scheduling(资源调度阶段)

核心含义:

浏览器在发起实际网络请求前,对要加载的资源进行“规划和排队”的准备阶段——简单说就是“浏览器决定:什么时候、用什么优先级、分配什么连接来加载这个资源”。

关键过程(包含的子阶段):
  1. 资源优先级排序:浏览器会给不同资源分配优先级(如:HTML/CSS 是「高优先级」,图片/脚本是「中/低优先级」),高优先级资源会插队先加载。
  2. 队列等待(Queueing)
    • 同一域名下,浏览器默认最多同时建立 6 个 TCP 连接(HTTP/1.1 限制),如果连接已占满,后续资源会排队等待空闲连接。
    • 若资源依赖其他资源(如:脚本依赖 CSS 加载完成),会等待依赖满足后再发起请求。
  3. 预处理(Preconnect/Preresolve):浏览器可能提前做 DNS 解析(域名→IP)、TCP 预连接(提前建立连接,减少后续等待),这些操作也会算在调度阶段。
直观例子:

你打开一个页面,同时有 8 张图片要加载。前 6 张图片会立刻分配连接加载,后 2 张会进入「队列等待」,直到前 6 张有一张加载完、释放连接,才会开始加载。这个“等待连接”的过程,就是调度阶段的核心耗时。

对应 Timing 面板的指标:
  • Queueing:排队等待时间(最常见的调度耗时)。
  • Stalled:资源被阻塞的时间(含排队+预处理)。

二、Connection Start(连接建立阶段)

核心含义:

调度完成后,浏览器与目标服务器建立网络通信通道的阶段——简单说就是“浏览器和服务器握手,打通数据传输的‘管道’”。

关键过程(按顺序执行):
  1. DNS 解析(Domain Lookup)
    • 把资源的域名(如:cdn.example.com)转换成服务器的 IP 地址(如:119.29.29.29)。
    • 耗时:通常 10-100ms,若有 DNS 缓存则耗时接近 0。
  2. TCP 连接(TCP Handshake)
    • 基于 HTTP/1.1 或 HTTP/2 建立 TCP 连接(三次握手),确保数据传输的可靠性。
    • 耗时:取决于网络延迟,通常 50-200ms(跨地区/跨国会更长)。
  3. TLS 握手(若为 HTTPS)
    • 若请求是 HTTPS(而非 HTTP),会额外进行 TLS/SSL 协商(验证证书、生成加密密钥),建立加密通道。
    • 耗时:通常 100-300ms,是 HTTPS 比 HTTP 多出来的核心耗时。
阶段终点:

当 TCP 连接(或 HTTPS 加密通道)建立完成后,“连接阶段”结束,进入实际的数据传输阶段。

对应 Timing 面板的指标:
  • Domain Lookup:DNS 解析时间(start → end)。
  • Connecting:TCP 握手时间(connectStart → connectEnd)。
  • SSL/TLS:HTTPS 加密协商时间(secureConnectionStart → connectEnd)。

三、Request/Response(请求/响应阶段)

核心含义:

连接建立后,浏览器与服务器实际传输数据的阶段——简单说就是“浏览器发请求、服务器处理并返回数据”的全过程。

关键过程(按顺序执行):
  1. 请求发送(Request)
    • 浏览器将 HTTP 请求头(含请求方法、路径、Cookie、参数等)和请求体(如:POST 提交的表单数据)通过已建立的连接发给服务器。
    • 耗时:极短(通常 1-10ms),因为数据传输速度快,主要耗时在服务器处理。
  2. 服务器处理(Waiting (TTFB))
    • 服务器接收请求后,进行业务处理(如:查询数据库、计算数据),然后生成响应结果。
    • 这是该阶段最核心的耗时(TTFB = Time To First Byte,“首字节时间”),直接反映服务器的响应速度。
  3. 响应接收(Response)
    • 服务器将响应头(含状态码、Content-Type 等)和响应体(如:HTML 内容、图片二进制数据)返回给浏览器。
    • 耗时:取决于响应数据大小和网络带宽(如:大图片/视频会耗时更长)。
阶段终点:

浏览器接收完所有响应数据后,该阶段结束,后续会进入资源解析/渲染阶段(如:解析 HTML、渲染图片)。

对应 Timing 面板的指标:
  • Sending:请求发送时间(requestStart → 响应开始)。
  • Waiting (TTFB):服务器处理时间(响应开始 → 首字节接收)。
  • Receiving:响应数据接收时间(首字节 → 全部数据接收完成)。

总结:三个阶段的核心逻辑

阶段 核心作用 通俗类比 优化方向(简要)
Resource Scheduling 规划资源加载时机/优先级/连接 快递发货前,快递员安排配送顺序 提升资源优先级、减少域名数(复用连接)、预加载关键资源
Connection Start 打通浏览器与服务器的通信通道 快递员上门前,先确认收货地址+路线 开启 DNS 缓存、使用 HTTP/2(多路复用)、启用 HTTPS 预连接
Request/Response 传输请求数据+处理+返回响应 快递员上门取件→仓库处理→送货上门 减小请求体/响应体(压缩)、优化服务器逻辑(降低 TTFB)、使用 CDN 加速

快速查看技巧:

在 Chrome 开发者工具的 Network 面板中,选中任意请求,查看「Timing」标签页的「Waterfall」(瀑布图),会直观显示每个阶段的耗时占比,能快速定位性能瓶颈(如:Queueing 太长→调度问题;TTFB 太长→服务器问题;Receiving 太长→数据太大/带宽问题)。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐