メインコンテンツまでスキップ

5. Header Field Definitions (ヘッダーフィールド定義)

このセクションでは、キャッシングに関連するHTTPヘッダーフィールドの構文とセマンティクスを定義する。


5.1. Age (経過時間)

"Age"ヘッダーフィールドは、レスポンスがオリジンサーバーで生成または正常に検証されてからの経過時間の送信者の推定値を伝える。Age値はセクション4.2.3で指定されているように計算される。

Age = delta-seconds

Ageフィールド値は非負整数であり、秒単位の時間を表す(セクション1.2.1参照)。

Ageヘッダーフィールドの存在は、このリクエストに対してレスポンスがオリジンサーバーによって生成または検証されなかったことを意味する。ただし、Ageヘッダーフィールドがないことは、オリジンに接触したことを意味しない。なぜなら、レスポンスはAgeを実装していないHTTP/1.0キャッシュから受信された可能性があるためである。


5.2. Cache-Control (キャッシュ制御)

"Cache-Control"ヘッダーフィールドは、リクエスト/レスポンスチェーンに沿ったキャッシュのディレクティブを指定するために使用される。このようなキャッシュディレクティブは単方向であり、リクエストにディレクティブが存在するからといって、レスポンスに同じディレクティブが与えられることを意味しない。

キャッシュは、このセクションで定義されたCache-Controlディレクティブの要件に従わなければならない (MUST)。他の場所で定義されたCache-Controlディレクティブの処理方法については、セクション5.2.3を参照。

注: 一部のHTTP/1.0キャッシュはCache-Controlを実装していない可能性がある。

プロキシは、キャッシュを実装しているかどうかに関係なく、転送されるメッセージ内のキャッシュディレクティブを、そのアプリケーションにとっての重要性に関係なく渡さなければならない (MUST)。なぜなら、ディレクティブはリクエスト/レスポンスチェーンに沿ったすべての受信者に適用される可能性があるためである。ディレクティブを特定のキャッシュに向けることはできない。

キャッシュディレクティブはトークンによって識別され、大文字と小文字を区別せずに比較され、オプションの引数を持つ。引数はトークンと引用符で囲まれた文字列の両方の構文を使用できる。以下で定義された引数を定義するディレクティブについて、受信者は、生成に特定の形式が必要な場合でも、両方の形式を受け入れるべきである (ought to)。

Cache-Control = 1#cache-directive

cache-directive = token [ "=" ( token / quoted-string ) ]

以下で定義されるキャッシュディレクティブについて、別途記載がない限り、引数は定義されない(また許可されない)。