服务器时序

基线 2023

新功能

2023年3月起,此功能在最新的设备和浏览器版本中均可使用。此功能可能无法在旧设备或浏览器中使用。

Server-Timing 标头用于通信一个或多个度量值和给定请求-响应循环的描述。它用于在用户的浏览器中的开发人员工具或 PerformanceServerTiming 接口中显示任何后端服务器计时度量值(例如数据库读/写、CPU 时间、文件系统访问等)。

标头类型 响应标头
禁止的标头名称

语法

Server-Timing 标头的语法允许您以不同的方式通信度量值:仅服务器度量值名称、带值的度量值、带值和描述的度量值以及带描述的度量值。

此标头可以包含一个或多个度量值,用逗号分隔。每个度量值都有一个名称、可选的持续时间和可选的描述。这些组件用分号分隔。

持续时间组件由字符串 "dur"、后跟 "=",然后是值组成,例如 "dur=23.2"。描述组件由字符串 "desc"、后跟 "=",然后是值组成,例如 "desc=DB lookup"

规范建议名称和描述应尽可能简短(使用缩写并省略可选值,只要可能),以最大限度地减少 HTTP 开销。

http
// Single metric without value
Server-Timing: missedCache

// Single metric with value
Server-Timing: cpu;dur=2.4

// Single metric with description and value
Server-Timing: cache;desc="Cache Read";dur=23.2

// Two metrics with value
Server-Timing: db;dur=53, app;dur=47.2

// Server-Timing as trailer
Trailer: Server-Timing
--- response body ---
Server-Timing: total;dur=123.4

隐私和安全

Server-Timing 标头可能会公开潜在的敏感应用程序和基础设施信息。请考虑在服务器端控制何时以及向谁返回哪些度量值。例如,您可以在服务器端仅向已验证用户显示度量值,而不对公众显示任何内容。

性能ServerTiming 接口

除了让 Server-Timing 标头度量值显示在浏览器的开发人员工具中外,PerformanceServerTiming 接口还使工具能够自动从 JavaScript 收集和处理度量值。此接口仅限于同一来源,但您可以使用 Timing-Allow-Origin 标头指定允许访问服务器度量值的域。此接口仅在某些浏览器中以安全上下文(HTTPS)提供。

Server-Timing 标头的组件映射到 PerformanceServerTiming 属性的方式如下

规范

规范
服务器计时
# the-server-timing-header-field

浏览器兼容性

BCD 表格仅在浏览器中加载

参见