0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Real World HTTPのキャッシュについてのまとめ

Posted at

Real World HTTPのキャッシュの部分を読んだので自分なりのまとめです。

Last Modified

サーバーがレスポンスに最終更新日時を持たせ返す。
2度目以降のダウンロード時にクライアントはIf-Modified-Sceneヘッダーに
レスポンスで返ってきた最終更新日時を持たせてリク
エストをする。
サーバー側はリクエストの最終更新日時とサーバー上のコンテンツの最終更新日時を
比較し、変更がなければ「304 Not Modified」を返し、変更があれば「200 OK」とコンテンツ返す。

Expires

日時を格納する。
クライアントはこの期限内であれば、強制的にキャッシュを利用する。

Etag

サーバーがレスポンスにEtagヘッダーを持たせ返す。
2度目以降のダウンロード時にクライアントはIf-None-Matchヘッダーに
レスポンスで返ってきたEtagの値を持たせてリクエストをする。
サーバー側はEtagの値を比較してEtagの値が同一ならば「304 Not Modified」を返し、
変更があれば「200変更があれば「200 OK」とコンテンツ返す。

Cache-Controll

public

同一のコンピューターを使う複数のユーザー間でキャッシュを再利用することを許可する。

private

同一のコンピューターを使う複数のユーザー間でキャッシュを再利用しない。
同一URLから異なるコンテンツが返される場合に利用。

max-age=n

キャッシュの鮮度を秒で設定。
設定内であればサーバーに問い合わせずに、キャッシュを利用。
それ以降はサーバーに問い合わせ、「304 Not Modified」が返ってきた場合のみ
キャッシュを利用する。

s-max-page=n

max-ageと同等。
共有のキャッシュに対する設定。

no-cache

キャッシュが有効性を毎回サーバーに問い合わせる。
max-age=0とほぼ同じ。

nostore

キャッシュしない。

no-tranceform

プロキシがコンテンツを改変するのを抑制。

must-revalidate

nocacheとほぼ同じプロキシサーバーがサーバーに問い合わせ、応答がなければプロキシサーバーがクライアントに「504 Gateway Timeout」を返すことを期待する。

proxy-revalidate

must-revalidateと同様。
共有のキャッシュのみに適用する。

Vary

UserAgentなど同じURLでもクライアントによって返す結果が異なることを示すヘッダー。
Varyを指定することで、UserAgentなどVaryで指定したヘッダーの内容に応じたキャッシュを
利用するようにする

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?