キャッシュ に関係する HTTP ヘッダー

0 件のコメント

HTTP ヘッダー の規約のうち、キャッシュに関するもののみを取り上げています。 これらの ヘッダー を正しく扱うことができれば…いろいろと幸せになれる ハズ !!

ここで取り上げているのは HTTP通信 時のヘッダーなので、 Ajax のような "動的コンテンツ" だろうと HTML や JavaScript といった "静的コンテンツ" だろうと共通する内容です。 HTTP通信 において基本となる内容です。

以下の表において、 リクエストに○があるものは、クライアントからサーバーへ "リクエスト" する時に利用します。 レスポンスに○があるものは、サーバーからクライアントへ "レスポンス" を返す時に利用します。

ヘッダー リクエスト レスポンス 説明
If-Modified-Since

Last-Modified とセットで利用します。

指定した日時よりサーバー側のデータが新しい場合、クライアントは最新データを受け取ります。

指定した日時がサーバー側の最新データと等しい場合、クライアントは 304 Not Modified を受け取ります。

If-None-Match

ETag とセットで利用します。

指定した ETag と異なる場合、クライアントは該当するデータを受け取ります。

指定した ETag と同じ場合、クライアントは 304 Not Modified を受け取ります。

Expires

クライアント側にキャッシュしておく有効期間を指定します。

Last-Modified

If-Modified-Since とセットで利用します。

サーバー側のデータが "いつ" のものであるかを指定します。

ETag

If-None-Match とセットで利用します。

サーバー側のデータから生成される ハッシュ文字列 等(更新状態も含めてデータを一意に特定できる文字列)を指定します。

Cache-Control

HTTP/1.1 で認識。 キャッシュ制御に関する指示。Pragma: no-cache より優先される。

指定できるプロパティは private, no-store, no-cache, must-revalidate など。

Pragma

HTTP/1.0 で認識。 no-cache を指定して、キャッシュしないことを指示。

今回、参考にしたサイトは以下の通りです。