Varyヘッダの概要

Varyヘッダとは、同じURLであっても取得するリソース(レスポンス)をリクエストヘッダの内容によって変化させたい場合に使用されるレスポンスヘッダ。
キャッシュサーバ等がキャッシュされたレスポンスを使用するか判定するために利用する。
Varyヘッダに指定されたリクエストヘッダの値が同一の場合にキャッシュされたデータを返す。
 

Varyヘッダの利用例

ウェブサイトが多言語対応していて、その表示言語がAccept-Languageヘッダに基づいて決定される場合の例を挙げる。
ユーザAとユーザBがAccept-Languageヘッダの値を 「ja」 に設定し、ユーザCが 「en」 に設定したとする。 この場合、ユーザAとユーザBは表示言語が日本語、ユーザCは英語を要求することとなり、同じURLでも異なる内容(異なる言語)のウェブページを受け取る。
このようなケースで、キャッシュを正しく機能させるためには、Varyヘッダが必要となる。 サーバはレスポンスに 「Vary: Accept-Language」 を含めることで、キャッシュにこのレスポンスが「Accept-Language」 値によって異なるレスポンスであることを伝える。
その結果、キャッシュはAccept-Languageヘッダの値に基づいて適切なレスポンスを提供することができる。
 

構文・フィールド値

構文は以下の通り。
 

参考情報

キャッシュ制御に関連するヘッダフィールドは以下の通り。