35

max-age がすべてのキャッシュに適用され、s-maxage が共有キャッシュ (プロキシおよびゲートウェイ キャッシュ) にのみ適用されることを考慮すると...

有効期限のない公開ページで両方のディレクティブを使用することは理にかなっていますか?

コントローラの擬似コード:

w = Response();
w.setPublic();
w.setMaxAge("1 year");
w.setShareMaxAge("1 year");

return w;
4

2 に答える 2

10

定義で注目すべき重要な点は共有キャッシュです

HTTP ヘッダー フィールド定義から

14.9.3 基本有効期限メカニズムの変更

...

s-maxage

応答に s-maxage ディレクティブが含まれている場合、共有キャッシュ(プライベートキャッシュは除く) の場合、このディレクティブで指定された最大経過時間は、 max-age ディレクティブまたは Expires ヘッダーで指定された最大経過時間よりも優先されます。

...

これは、varnish、cloudfront、cloudflare などのリバース プロキシ/キャッシュが、ブラウザー キャッシュとは異なるキャッシュ エージを持つ可能性があることを意味します。s-maxage個人的には の値が よりも高いことを好みますmaxage

HTTP 1.1 では、応答がキャッシュされると、ブラウザーに接続してキャッシュを無効にすることはできませんが、CDN に通知することはできます。

于 2016-11-22T23:24:20.920 に答える