首页/网络/协议速查/Server-Timing 服务端耗时
HTTP 头与缓存70 条

Server-Timing 服务端耗时

W3C 标准响应头:以结构化指标暴露服务端各阶段耗时(数据库、缓存、渲染),浏览器 DevTools 可直接展示。

协议速查网络更新于 2026-10-13

Server-Timing 是什么

Server-Timing 是 W3C 定义的标准响应头,用来把服务端各阶段的耗时暴露出来:数据库查询多久、缓存命中花了几毫秒、模板渲染占了多少时间。指标以名称加参数的形式书写,浏览器开发者工具能在网络面板里直接展示这些分段耗时。相比部署一套全链路追踪系统,它几乎零成本,非常适合快速回答「这个接口慢在哪一段」。

基本信息

名称Server-Timing
作用暴露服务端分段耗时指标
规范W3C Server Timing
语法指标名加分号,可带 dur 与 desc 参数
多指标以逗号分隔,可写成一个头
展示位置浏览器开发者工具网络面板

响应示例与验证

响应示例与验证
curl -si https://api.example.com/report | grep -i server-timing
# Server-Timing: db;dur=53.2;desc="mysql", cache;dur=2.1;desc="redis", app;dur=120;desc="render"
# 浏览器侧在开发者工具的网络面板里可直接看到这些分段

参数含义

参数含义注意点
指标名分段名称,如 db、cache、app自己定义,需团队内统一
dur该段耗时,单位毫秒允许小数
desc描述文本需加引号,内容要避免暴露内部细节

典型使用场景

  • 接口性能定位:快速区分瓶颈在数据库、缓存还是应用逻辑
  • 前端联调:开发者工具里直接看到后端分段耗时,减少来回沟通
  • 灰度对比:新旧实现并行时对比同口径的分段耗时
  • 容量评估:给关键路径的分段耗时建立告警基线
  • 线上抽检:用一行 curl 命令拿到耗时构成,不必接入追踪系统
该头的用途是诊断,不是业务功能:它的耗时口径由实现方自己定义,跨系统比较时需要先确认口径一致。生产环境还应注意不要把敏感的库名、内部地址或业务指标写进描述文本,只对内部流量开启,或在边缘统一剥离。

易错点

  • 把内部库名、缓存键或主机地址写进描述文本,对公网暴露架构细节
  • 指标口径各服务不一致,跨系统比较耗时得出错误结论
  • 把该头当成可以影响缓存或路由的功能性头,实际它只用于诊断展示
  • 开启后忘记在边缘剥离,外部用户与第三方也能看到内部耗时构成与分段命名
  • 只看分段耗时之和而不看网络耗时,误判为服务端性能问题

数据来源与参考

  • W3C Server Timing
  • MDN Server-Timing

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌