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