服务器时序
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
属性的方式如下
"name"
->PerformanceServerTiming.name
"dur"
->PerformanceServerTiming.duration
"desc"
->PerformanceServerTiming.description
规范
规范 |
---|
服务器计时 # the-server-timing-header-field |
浏览器兼容性
BCD 表格仅在浏览器中加载