Critical-CH header

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

HTTP Critical-CH 响应头Accept-CH 一同使用,用于标识已接受的客户端提示中哪些是关键的

接收到带有 Critical-CH 的响应的用户代理必须检查原始请求中是否发送了指示的关键头部。如果未发送,用户代理将重新发送请求并包含关键头部,而不是渲染页面。这种方法确保了即使在第一次请求中未包含,或服务器配置更改后,使用关键客户端提示设置的客户端偏好也始终会被使用。

Critical-CH 头部中列出的每个头部也应存在于 Accept-CHVary 头部中。

头类型 响应头
禁止请求头

语法

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-CHVary 头部中。

客户端自动重试请求(由于上面指定了 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

浏览器兼容性

另见