Critical-CH header
HTTP Critical-CH
响应头与 Accept-CH
一同使用,用于标识已接受的客户端提示中哪些是关键的。
接收到带有 Critical-CH
的响应的用户代理必须检查原始请求中是否发送了指示的关键头部。如果未发送,用户代理将重新发送请求并包含关键头部,而不是渲染页面。这种方法确保了即使在第一次请求中未包含,或服务器配置更改后,使用关键客户端提示设置的客户端偏好也始终会被使用。
Critical-CH
头部中列出的每个头部也应存在于 Accept-CH
和 Vary
头部中。
语法
http
Critical-CH: <ch-list>
指令
<ch-list>
-
一个或多个逗号分隔的客户端提示头部列表,服务器认为它们是关键客户端提示。
示例
客户端向服务器发出初始请求
http
GET / HTTP/1.1
Host: example.com
服务器响应,通过 Accept-CH
表明它接受 Sec-CH-Prefers-Reduced-Motion
。在此示例中,Critical-CH
也用于指定 Sec-CH-Prefers-Reduced-Motion
被认为是关键客户端提示。
http
HTTP/1.1 200 OK
Content-Type: text/html
Accept-CH: Sec-CH-Prefers-Reduced-Motion
Vary: Sec-CH-Prefers-Reduced-Motion
Critical-CH: Sec-CH-Prefers-Reduced-Motion
注意:我们已在 Vary
头部中指定 Sec-CH-Prefers-Reduced-Motion
,以表明响应应根据此头部的值(即使 URL 保持不变)进行单独缓存。Critical-CH
头部中列出的每个头部也应存在于 Accept-CH
和 Vary
头部中。
客户端自动重试请求(由于上面指定了 Critical-CH
),通过 Sec-CH-Prefers-Reduced-Motion
告知服务器它有减少动画的用户偏好
http
GET / HTTP/1.1
Host: example.com
Sec-CH-Prefers-Reduced-Motion: "reduce"
客户端将在当前会话的后续请求中包含该头,除非响应中的 Accept-CH
发生变化,表明服务器不再支持它。
规范
规范 |
---|
客户端提示可靠性 # name-the-critical-ch-response-he |
浏览器兼容性
加载中…
另见
- 客户端提示
- 用户代理客户端提示 API
- 通过用户代理客户端提示改善用户隐私和开发者体验 (developer.chrome.com)
Accept-CH
- HTTP 缓存:Vary 和
Vary
PerformanceNavigationTiming.criticalCHRestart