max-age がすべてのキャッシュに適用され、s-maxage が共有キャッシュ (プロキシおよびゲートウェイ キャッシュ) にのみ適用されることを考慮すると...
有効期限のない公開ページで両方のディレクティブを使用することは理にかなっていますか?
コントローラの擬似コード:
w = Response();
w.setPublic();
w.setMaxAge("1 year");
w.setShareMaxAge("1 year");
return w;
max-age がすべてのキャッシュに適用され、s-maxage が共有キャッシュ (プロキシおよびゲートウェイ キャッシュ) にのみ適用されることを考慮すると...
有効期限のない公開ページで両方のディレクティブを使用することは理にかなっていますか?
コントローラの擬似コード:
w = Response();
w.setPublic();
w.setMaxAge("1 year");
w.setShareMaxAge("1 year");
return w;
定義で注目すべき重要な点は共有キャッシュです
14.9.3 基本有効期限メカニズムの変更
...
s-maxage
応答に s-maxage ディレクティブが含まれている場合、共有キャッシュ(プライベートキャッシュは除く) の場合、このディレクティブで指定された最大経過時間は、 max-age ディレクティブまたは Expires ヘッダーで指定された最大経過時間よりも優先されます。
...
これは、varnish、cloudfront、cloudflare などのリバース プロキシ/キャッシュが、ブラウザー キャッシュとは異なるキャッシュ エージを持つ可能性があることを意味します。s-maxage
個人的には の値が よりも高いことを好みますmaxage
HTTP 1.1 では、応答がキャッシュされると、ブラウザーに接続してキャッシュを無効にすることはできませんが、CDN に通知することはできます。