查看文档目录

Server-Timing 响应头

Server-Timing 响应头:在响应里带上缓存状态、命中的缓存层、回源建连与首包耗时,在浏览器开发者工具里直接查看。

作用

打开后,节点在响应里追加一个 Server-Timing 头,写明这次请求的缓存状态、由哪一层缓存回答,以及节点连接上游和等到上游首包用了多少毫秒。源站自己返回的 Server-Timing 条目保留,节点只在后面追加。

使用场景

  • 页面慢,想知道是缓存没命中,还是回源本身慢。
  • 想确认某个请求是边缘节点缓存命中,还是由 L2 缓存回答。
  • 对比不同时段或不同资源的回源建连和首包耗时。

在哪里配置

控制台:网站管理,选择网站,进入编辑,打开“高级设置”,在“其它”卡片里找到“Server-Timing 响应头”开关。开关单独保存,保存后在下一次发布时生效。

配置项

配置项默认值说明
Server-Timing 响应头关闭网站级开关

响应头内容

条目何时出现内容
cdn-cache网站开了缓存desc 是节点的缓存状态,与 X-CDN-Cache 同值
cdn-hit-layer响应来自某一层缓存desc=edge:本节点命中;desc=l2:本节点未命中而 L2 命中
cdn-connect这次请求建了上游连接dur 是节点到上游建连的毫秒数
cdn-ttfb这次请求有上游响应dur 是节点发出请求到收到上游响应头的毫秒数

某一项不适用就不写;全部不适用时不加这个头。示例:

Server-Timing: cdn-cache;desc=MISS, cdn-hit-layer;desc=l2, cdn-connect;dur=3, cdn-ttfb;dur=41

头里只有状态词和整数毫秒,不含节点名、节点地址、源站地址或租户标识。

常见问题

在哪里看到这个头

浏览器开发者工具的“网络”面板,选中请求后在响应头里查看,部分浏览器还会在“时间”页里按条目显示。

跨域脚本读不到

同源页面和开发者工具可以直接看到。要让其他来源的脚本读取,在网站的 HTTP 策略的响应头里自己加 Timing-Allow-Origin。

开了开关,响应里没有这个头

按顺序检查:配置保存后是否已经发布;目标节点是否已升级到支持该功能的版本,节点版本不够时发布页会列出需要升级的节点;网站是否处于攻击升级 B 级及以上,此时与缓存状态头一样不输出。

命中缓存的请求为什么没有 cdn-connect

没有回源就没有建连,也没有上游首包,这两项自然不出现。