Cacheable (キャッシュ可能)
キャッシュ可能なレスポンス(応答)とは、キャッシュすることが可能な HTTP レスポンスで、後で取り出して使用するために格納され、サーバーへの新しいリクエスト(要求)を節約します。 すべての HTTP レスポンスがキャッシュされるわけではなく、キャッシュされる HTTP レスポンスには次の制約があります。
- リクエストで使用されるメソッドは、それ自体がキャッシュ可能です (
GETメソッドまたはHEADメソッド)。POSTまたはPATCHリクエストへのレスポンスも、新鮮さ (freshness) が示され、Content-Locationヘッダーが設定されている場合はキャッシュできますが、これはほとんど実装されていません。例えば、 Firefox は対応していません (Firefox バグ 109553)。PUTやDELETEのような他のメソッドはキャッシュ可能ではなく、その結果をキャッシュすることはできません。 - レスポンスのステータスコードはアプリケーションキャッシュによって認識され、キャッシュ可能と見なされている場合。キャッシュ可能なステータスコードは、
200,203,204,206,300,301,404,405,410,414,501です。 - レスポンスに特定のヘッダー、たとえば
Cache-Controlにキャッシュを禁止する値がついたものがない場合。
特定の URI に対するキャッシュ不可能なリクエスト/レスポンスの中には、同じ URI で以前にキャッシュされたレスポンスを無効にするものがあることに注意してください。たとえば、 PUT を /pageX.html に実行すると、/pageX.html に対する GET または HEAD リクエストのレスポンスを無効化します。
リクエストのメソッドとレスポンスのステータスの両方がキャッシュ可能な場合、リクエストに対するレスポンスをキャッシュすることができます。
http
GET /pageX.html HTTP/1.1 (…) 200 OK (…) PUT リクエストはキャッシュできません。 さらに、HEAD または GET を介して行われた同じ URI へのリクエストに対して、キャッシュされたデータを無効にします。
http
PUT /pageX.html HTTP/1.1 (…) 200 OK (…) レスポンス内の特定の Cache-Control ヘッダーは、キャッシュすることを防止できます。
http
GET /pageX.html HTTP/1.1 (…) 200 OK Cache-Control: no-cache (…)