5 2 1.Request Cache Control Directives
このセクションでは、クライアントがHTTPリクエストで使用できるキャッシュディレクティブを定義する。
5.2.1.1. max-age
引数: delta-seconds
"max-age"リクエストディレクティブは、クライアントが指定された秒数より大きい経過時間を持つレスポンスを受け入れたくないことを示す。max-staleリクエストディレクティブも存在しない限り、クライアントは古いレスポンスを受け入れない。
このディレクティブは引数構文のトークン形式を使用する: 例えば、'max-age=5'であり'max-age="5"'ではない。送信者は引用符で囲まれた文字列形式を生成すべきではない (SHOULD NOT)。
5.2.1.2. max-stale
引数: delta-seconds
"max-stale"リクエストディレクティブは、クライアントが鮮度有効期間を超えたレスポンスを受け入れる意思があることを示す。max-staleに値が割り当てられている場合、クライアントは、鮮度有効期間を指定された秒数以下だけ超えたレスポンスを受け入れる意思がある。max-staleに値が割り当てられていない場合、クライアントは任意の経過時間の古いレスポンスを受け入れる意思がある。
このディレクティブは引数構文のトークン形式を使用する: 例えば、'max-stale=10'であり'max-stale="10"'ではない。送信者は引用符で囲まれた文字列形式を生成すべきではない (SHOULD NOT)。
5.2.1.3. min-fresh
引数: delta-seconds
"min-fresh"リクエストディレクティブは、クライアントが、鮮度有効期間が現在の経過時間に指定された秒数を加えた値以上であるレスポンスを受け入れる意思があることを示す。つまり、クライアントは、少なくとも指定された秒数の間、まだ新鮮であるレスポンスを望んでいる。
このディレクティブは引数構文のトークン形式を使用する: 例えば、'min-fresh=20'であり'min-fresh="20"'ではない。送信者は引用符で囲まれた文字列形式を生成すべきではない (SHOULD NOT)。
5.2.1.4. no-cache
"no-cache"リクエストディレクティブは、キャッシュが、オリジンサーバーでの正常な検証なしに保存されたレスポンスを使用してリクエストを満たしてはならない (MUST NOT) ことを示す。
5.2.1.5. no-store
"no-store"リクエストディレクティブは、キャッシュがこのリクエストまたはそれに対するレスポンスのいずれの部分も保存してはならない (MUST NOT) ことを示す。このディレクティブはプライベートキャッシュと共有キャッシュの両方に適用される。このコンテキストでの「保存してはならない」とは、キャッシュが意図的に不揮発性ストレージに情報を保存してはならず (MUST NOT)、転送後できるだけ速やかに揮発性ストレージから情報を削除するために最善の努力をしなければならない (MUST) ことを意味する。
このディレクティブは、プライバシーを確保するための信頼できるまたは十分なメカニズムではない。特に、悪意のあるまたは侵害されたキャッシュはこのディレクティブを認識または遵守しない可能性があり、通信ネットワークは盗聴に対して脆弱である可能性がある。
このディレクティブを含むリクエストがキャッシュから満たされた場合、no-storeリクエストディレクティブはすでに保存されているレスポンスには適用されないことに注意すること。
5.2.1.6. no-transform
"no-transform"リクエストディレクティブは、中間層(キャッシュを実装しているかどうかに関係なく)が、[RFC7230] のセクション5.7.2で定義されているように、ペイロードを変換してはならない (MUST NOT) ことを示す。
5.2.1.7. only-if-cached
"only-if-cached"リクエストディレクティブは、クライアントが保存されたレスポンスのみを取得したいことを示す。このディレクティブを受信した場合、キャッシュは、リクエストの他の制約と一致する保存されたレスポンスを使用して応答するか (SHOULD)、504(Gateway Timeout)ステータスコードで応答すべきである (SHOULD)。キャッシュのグループが良好な内部接続を持つ統合システムとして運用されている場合、メンバーキャッシュはそのキャッシュグループ内でそのようなリクエストを転送してもよい (MAY)。