s-max-age

s-maxage キャッシュ指令 (HTTP)

[8] Cache-Control: ヘッダーs-maxage キャッシュ指令は、 共有キャッシュにおける腐敗とみなすまでの時間を指定するものです。

[9] 私的キャッシュにも共有キャッシュにも適用される max-age キャッシュ指令とは違って、 「max」と「age」の間に - は入りません。

仕様書

意味

[3] 応答Cache-Control: ヘッダーs-maxage キャッシュ指令は、 共有キャッシュにおけるの最大値を示します。これは max-age キャッシュ指令Expires: ヘッダーにより指定されるの最大値を上書きするものです。 >>1

[4] s-maxage キャッシュ指令proxy-revalidate キャッシュ指令意味をも有します (imply) >>1。 この「意味」がどの意味なのか RFC 7234 では曖昧ですが、旧版の RFC 2616 14.9.3 では腐敗応答を返す前に検証が必要だとの注記が添えられていて、 なぜか RFC 7234 ではその部分が削除されていることがわかります。

[10] 仮に proxy-revalidate と完全に同じ意味だとすると、 共有キャッシュ再利用前に必ず検証しなければなりませんから、 s-maxage を指定する意味はなくなってしまいます。 一方で腐敗応答を返す前に検証が必要というのも (max-stale など明示的な指定がない限り) 標準の動作ですから、一体どの部分が同じ意味なのかさっぱりわかりません。 >>11 の記述とあわせて推測すると、 proxy-revalidate と同じく max-stale など他の指定があったとしても腐敗応答を送ってはならない、と解釈するべきなのかもしれません。

構文

[2] 引数の値はデルタ秒です >>1

  1. デルタ秒

[5] 引数は省略できないと思われます。

[6] 引数を指定する場合は、字句生成するべきです >>1受信者引用文字列にも対応するべき (ought to) です。

文脈

[15] s-maxageMeter: ヘッダーに対応した計測部分木から外部に応答転送される時にも使われます。

Meter: を参照。

処理モデル

[12] 満期時刻キャッシュ再利用参照。

歴史

[14] RFC 2227RFC 2616 の出版に先立って s-maxage を利用しています >>13