created: 2021-03-12T09:17:07.000Z
HTTPのVaryヘッダについて
- Varyは中間のキャッシュサーバで活用することが期待されてるヘッダ
- nginx や h20 などのオリジンサーバがレスポンスヘッダに入れてキャッシュサーバを制御するために使う
- キャッシュサーバは Vary の指定を参照して、キャッシュをいくつかに分けて保持する
Vary: HOGEHOGE
と指定した場合はHOGEHOGEヘッダの値を参照してキャッシュを複数もつことになる
例
Vary: Accept-Encoding
とすると、キャッシュサーバは同じURLでも次の2種類のキャッシュを保持してくれる
Accept-Encoding: gzip
Accept-Encoding: plain
たとえば、古いガラケーでは gzip が inflate できなかったので、gzip 圧縮されたキャッシュをクライアントに返してしまうと表示ができない。 Vary: Accept-Encoding
と指定して、ガラケーの場合はガラケー用のキャッシュを保持/返答するようにしないといけない。