共有プロキシが再利用できる画像を公開する
公開で再利用できる画像レスポンスに明示的な鮮度期間とバリデータを与え、ブラウザの再読み込みを通常のキャッシュ再利用とは別に解釈します。
HTTP から見える共有キャッシュを経由する画像レスポンスには、明示的な存続期間とバリデータを公開します。画像をユーザー間で再利用しても安全な場合、レスポンスヘッダーの例は次のとおりです。
Cache-Control: public, max-age=604800
ETag: "image-v4"
存続期間の単位は秒で、604800 は 1 週間です。public はユーザー間で再利用する想定のコンテンツにのみ使います。
ブラウザと共有プロキシで異なる存続期間が必要なら、s-maxage が共有キャッシュの存続期間を指定します。たとえば max-age=3600 と s-maxage=604800 を組み合わせると、共有キャッシュには長い鮮度期間が与えられます。
Expires は期間ではなく日時
Expires は HTTP 日時形式のタイムスタンプを受け取ります。max-age はそのフィールドを上書きし、共有キャッシュでは s-maxage が優先されます。レスポンスを生成するときに任意の Expires 日時を生成してください。
再読み込みは検証を要求できる
Cache-Control: no-cache を含むリクエスト は、保存されたレスポンスを再利用する前に、オリジンでの検証成功を求めます。これは、レスポンスの通常の鮮度ポリシーなら本来は再利用を許す場合でも起こりえます。
バリデータがあれば、キャッシュは変化していない画像を効率よく確認できます。304 レスポンスは、画像のバイト列をオリジンから再送せずに、保存された表現を確認できます。したがってオリジンへの通信自体は、キャッシュされたオブジェクトが破棄されたことを意味しません。
ポリシーを見直すときは、通常の再利用と明示的な再読み込みを比較してください。