Save-Data ヘッダー
利用可能性は限定的
この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。
Want more browser support for this feature? Tell us why.
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
HTTP の Save-Data リクエストヘッダーは、クライアントのデータ使用量の縮小に関する環境設定を示すネットワーククライアントヒントです。
この理由としては、転送コストが高いことや、接続速度が遅いことなどが考えられます。
Save-Data は低エントロピーヒントであるため、サーバーが Accept-CH レスポンスヘッダーを使用してリクエストしていなくても、クライアント側から送信されることがあります。
さらに、Downlink や RTT など、ネットワークの性能を示すそれ以外にもクライアントヒントの値があり、それらにかかわらず、クライアントに送信されるデータ量を縮小するためにこれを使用しましょう。
値が On の場合、ユーザーがクライアント側でデータ使用量縮小モードを明示的に有効にしたことを示します。
この情報がオリジンに伝達されると、オリジンは、サイズの小さい画像や動画リソース、異なるマークアップやスタイル設定、ポーリングや自動更新の無効化といった具合に、ダウンロードするデータ量を縮小するための代替コンテンツを配信することができます。
メモ: HTTP/2 サーバープッシュ (RFC 7540, セクション 8.2: Server Push) を無効にすると、データのダウンロードを縮小できることがあります。 なお、この機能は、ほとんどの主要なブラウザエンジンにおいて、デフォルトで対応されなくなりました。
| ヘッダー種別 | リクエストヘッダー, クライアントヒント |
|---|---|
| 禁止リクエストヘッダー | いいえ |
| CORS セーフリストレスポンスヘッダー | いいえ |
構文
Save-Data: <sd-token>
ディレクティブ
<sd-token>-
クライアントがデータ使用量縮小モードを有効にするかどうかを示す値です。
onは「はい」を表し、off(デフォルト値)は「いいえ」を表します。
例
>Save-Data: on の使用
次のメッセージは、クライアントがデータ縮小モードを有効にしていることを示す Save-Data ヘッダーを付けてリソースをリクエストしています。
GET /image.jpg HTTP/1.1
Host: example.com
Save-Data: on
サーバーは 200 レスポンスを返し、Vary ヘッダーは、レスポンスの生成に Save-Data が使用された可能性があることを示しています。キャッシュは、レスポンスを区別するためにこのヘッダーを認識しておく必要があります。
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 ヘッダーを指定せずに、同じリソースをリクエストします。
GET /image.jpg HTTP/1.1
Host: example.com
サーバーのレスポンスには、コンテンツの完全版が含まれています。
Vary ヘッダーにより、Save-Data ヘッダーの値に基づいて、レスポンスが別個にキャッシュされるようになります。
これにより、Save-Data ヘッダーができなくなった場合(例えば、モバイル通信から Wi-Fi に切り替えた後など)、キャッシュから低品質な画像がユーザーに配信されることを確実に防ぐことができます。
HTTP/1.1 200 OK
Content-Length: 481770
Vary: Accept-Encoding, Save-Data
Cache-Control: public, max-age=31536000
Content-Type: image/jpeg
[…]
仕様書
| 仕様書 |
|---|
| Save Data API> # save-data-request-header-field> |
ブラウザーの互換性
関連情報
- CSS
@media特性prefers-reduced-data Varyヘッダー:Save-Dataの値に応じて配信されるコンテンツが異なることを示します(HTTP キャッシング:Vary を参照)NetworkInformation.saveData- Help Your Users
Save-Data- css-tricks.com - Delivering Fast and Light Applications with Save-Data - web.dev - web.dev
- Improving user privacy and developer experience with User-Agent Client Hints (developer.chrome.com)