このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Cacheable (キャッシュ可能)

キャッシュ可能なレスポンス(応答)とは、キャッシュすることが可能な HTTP レスポンスで、後で取り出して使用するために格納され、サーバーへの新しいリクエスト(要求)を節約します。 すべての HTTP レスポンスがキャッシュされるわけではなく、キャッシュされる HTTP レスポンスには次の制約があります。

  • リクエストで使用されるメソッドは、それ自体がキャッシュ可能です (GET メソッドまたは HEAD メソッド)。POST または PATCH リクエストへのレスポンスも、新鮮さ (freshness) が示され、Content-Location ヘッダーが設定されている場合はキャッシュできますが、これはほとんど実装されていません。例えば、 Firefox は対応していません (Firefox バグ 109553)。 PUTDELETE のような他のメソッドはキャッシュ可能ではなく、その結果をキャッシュすることはできません。
  • レスポンスのステータスコードはアプリケーションキャッシュによって認識され、キャッシュ可能と見なされている場合。キャッシュ可能なステータスコードは、 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 (…) 

関連情報

  • HTTP 仕様書の methods and caching に関する詳細
  • 一般的にキャッシュ可能なメソッドの説明: GET, HEAD
  • 一般的にキャッシュ不可能なメソッドの説明: PUT, DELETE, しばしば POST