关键-CH
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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 客户端提示
- 用户代理客户端提示 API
- 使用用户代理客户端提示改进用户隐私和开发者体验 (developer.chrome.com)
Accept-CH
- HTTP 缓存 > Vary 和
Vary
PerformanceNavigationTiming.criticalCHRestart