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