Save-Data 頭

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

HTTP Save-Data 請求頭是一種網路客戶端提示,它表示客戶端對減少資料使用的偏好。這可能是由於高傳輸成本、慢連線速度等原因。

Save-Data 是一種低熵提示,因此即使伺服器未使用 Accept-CH 響應頭請求,客戶端也可能傳送它。此外,它應該用於減少傳送到客戶端的資料,而不考慮指示網路能力的其他客戶端提示的值,例如 DownlinkRTT

On 表示使用者在客戶端明確選擇加入減少資料使用模式。當傳達給源時,這允許它們提供替代內容以減少下載的資料,例如更小的影像和影片資源、不同的標記和樣式、停用輪詢和自動更新等。

注意:停用 HTTP/2 伺服器推送 (RFC 7540,第 8.2 節:伺服器推送) 可能會減少資料下載。請注意,此功能在大多數主要瀏覽器引擎中不再預設支援。

頭型別 請求標頭客戶端提示
禁止請求頭
CORS-safelisted 響應頭

語法

http
Save-Data: <sd-token>

指令

<sd-token>

一個值,表示客戶端是否希望選擇加入減少資料使用模式。on 表示是,而 off(預設值)表示否。

示例

使用 Save-Data: on

以下訊息請求一個資源,其中 Save-Data 頭指示客戶端正在選擇進入減少資料模式

http
GET /image.jpg HTTP/1.1
Host: example.com
Save-Data: on

伺服器響應 200 響應,並且 Vary 頭指示 Save-Data 可能已用於建立響應,並且快取應該知道此頭以區分響應

http
HTTP/1.1 200 OK
Content-Length: 102832
Vary: Accept-Encoding, Save-Data
Cache-Control: public, max-age=31536000
Content-Type: image/jpeg

[…]

省略 Save-Data

在這種情況下,客戶端在沒有 Save-Data 頭的情況下請求相同的資源

http
GET /image.jpg HTTP/1.1
Host: example.com

伺服器的響應提供了內容的完整版本。Vary 頭確保響應應根據 Save-Data 頭的值單獨快取。這可以確保當 Save-Data 頭不再存在時(例如,從蜂窩網路切換到 Wi-Fi 後),使用者不會從快取中獲得質量較低的影像。

http
HTTP/1.1 200 OK
Content-Length: 481770
Vary: Accept-Encoding, Save-Data
Cache-Control: public, max-age=31536000
Content-Type: image/jpeg

[…]

規範

規範
儲存資料 API
# save-data-request-header-field

瀏覽器相容性

另見