關鍵-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