HTTPにおけるキャッシュについて勉強したことをメモる

Motivation

キャッシュについてちゃんと理解するのはフロントエンドの人間にとって必要不可欠だと思う。正直。

キャッシュって何だっけ

まず、「キャッシュする」とは一体どういうプロセスなのか考える。Cloudflareのドキュメントにいいことが書いてある。

これを読む限り、HTTPにおける「キャッシュする」とは、HTTPリクエストに紐づくレスポンスのデータをどこか一時的に保存しておいて、似た様なHTTPリクエストがあった時にそのデータを使い回すプロセスを指すことが分かる。 この時に使い回すデータ(ファイルを含む)をキャッシュと呼ぶ。

キャッシュは何が嬉しいんだっけ

キャッシュの種類

キャッシュはプライベートキャッシュと共有キャッシュの2種類に大別することができる。

プライベートキャッシュ

共有キャッシュ

If-Modified-Since

HTTP/1.0の時代から存在するHTTPヘッダー。

If-Modified-Since ヘッダーで指定された時刻以降にリソースが変更されていれば、新しいリソースを 200 のステータスコードと共に返す。

そうでない場合ステータスコードは 304 とし、レスポンスに本文は含めない

また、このヘッダーに詰める時刻のタイムゾーンは GMT にしないといけないところは注意が必要。

Expires

ETag

Cache-Control

stale-while-revalidate

Vary

参考リンク