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

2. キャッシュ操作の概要

適切なキャッシュ操作は、HTTP 転送のセマンティクス ([RFC7231]) を保ちつつ、すでにキャッシュに保持されている情報の転送を排除します。キャッシュは HTTP の完全に任意の機能 (OPTIONAL) ですが、キャッシュされた応答の再利用は望ましいものであり、それを妨げる要件やローカル設定がない限り、そのような再利用が既定の動作であると想定できます。したがって、HTTP のキャッシュに関する要件は、キャッシュが再利用できない応答を格納したり、格納された応答を不適切に再利用したりすることを防ぐことに重点を置いており、特定の応答をキャッシュが常に格納し再利用することを義務付けているわけではありません。

各キャッシュエントリは、キャッシュキーと、同じキーを使用した以前のリクエストに対応する 1 つ以上の HTTP 応答で構成されます。最も一般的なキャッシュエントリの形式は、取得リクエストの成功結果です。すなわち、GET リクエストに対する 200 (OK) 応答であり、これはリクエストターゲットによって識別されるリソースの表現を含みます ([RFC7231] のセクション 4.3.1)。ただし、恒久的リダイレクト、否定的な結果 (例えば 404 (Not Found))、不完全な結果 (例えば 206 (Partial Content))、および GET 以外のメソッドへの応答も、そのメソッドの定義がそのようなキャッシュを認め、キャッシュキーとして使用するのに適したものを定義している場合は、キャッシュできます。

主キャッシュキーは、リクエストメソッドとターゲット URI で構成されます。しかし、現在一般的に使用されている HTTP キャッシュは通常、GET への応答のキャッシュに限定されているため、多くのキャッシュは他のメソッドを単に拒否し、URI のみを主キャッシュキーとして使用します。

リクエストターゲットが内容ネゴシエーションの対象である場合、そのキャッシュエントリは複数の格納された応答で構成されることがあり、それぞれが元のリクエストの選択ヘッダーフィールドの値に対する二次キーによって区別されます (セクション 4.1)。