Cache Control Overview

キャッシュ関連ヘッダーを横断して判定します。入力はサーバーへ送信しません。再検証やCDN差分の一次切り分けに使えます。

状態

ブラウザ内で処理します。入力はサーバーへ送信しません。まずはここで一次切り分けしてください。

使い方

Cache-Control を中心に、Pragma/Expires/Age を位置づけて理解します。

役割

  • Cache-Control: 相対的な期限/制御の主役
  • Pragma: HTTP/1.0 互換の legacy(no-cache が主)
  • Expires: 絶対時刻で期限を指定
  • Age: 中継キャッシュでの経過秒

優先順位

  • Cache-Control が最優先
  • Pragma は legacy 互換目的
  • Expires は Cache-Control 不在時の補助

よく使う指示

  • no-store: 保存しない
  • no-cache: 使う前に検証
  • max-age=0: すぐ期限切れ
  • max-age=31536000, immutable: 長期キャッシュ

注意(このツール)

  • 古い中継やクライアントでは Pragma / Expires の解釈が混在する場合があります。
  • 最終挙動は CDN・ブラウザ・アプリ側キャッシュ実装の組み合わせで決まります。

このページについて

何をするページ?

Cache-Control / Pragma / Expires / Age の役割と関係を整理し、実務で使いやすい形にまとめます。

優先順位のイメージ

  • 基本は Cache-Control が最優先
  • Pragma は主に HTTP/1.0 互換の legacy
  • Expires は絶対期限(Cache-Control が無いときの補助)
  • Age は中継/キャッシュでの経過秒

よくあるパターン

  • no-store: 一切保存しない
  • no-cache + must-revalidate: 毎回検証
  • max-age=0: すぐ期限切れ(再検証)
  • max-age=31536000, immutable: 長期キャッシュ

切り分け手順(おすすめ)

  • Response Headers Parser で Cache-Control/Expires/Age を抽出
  • このページで優先順位と意味を整理
  • Cache-Control Inspect / Expires Inspect で詳細を確認

推奨(用途別)

  • API(JSON): 秘密情報は no-store。公開なら no-cache + validators
  • HTML: no-cache + must-revalidate か短め max-age + validators
  • 静的アセット: long max-age + immutable + versioned URL
  • Cache-Control Inspect
  • Pragma Cache Inspect
  • Expires Inspect
  • Age Inspect

このページでできること

  • Cache-Control / Pragma / Expires / Age の関係整理
  • 実務でよく使うパターンの確認

注意(運用)

  • キャッシュ挙動はブラウザ/CDN/プロキシの層で変わるため、同一点観測で比較してください。
  • ヘッダー診断だけでは不十分な場合があります。アプリ側の更新戦略とキー設計も確認してください。

参照仕様

  • RFC 9111(HTTP Caching)
  • RFC 9110(HTTP Semantics)
  • MDN: HTTP caching

FAQ

Cache-Control と Expires はどちらが優先ですか?

通常は Cache-Control が優先されます。Expires は補助として扱います。

Pragma は今でも必要ですか?

主に旧環境互換のためです。新規設計では Cache-Control を中心にします。

参考リンク

  1. RFC 9111
  2. RFC 9110
  3. MDN: HTTP caching

症状別ケーススタディ(このページ向け)

仕様の優先順位を理解してポリシーを設計するページです。実装前の方針決めに使います。

  • Cache-Control がある場合は Expires より優先される前提で設計する
  • Pragma は後方互換用途と割り切る
  • Age は配信途中の経過時間として読み解く

実装時チェックリスト(このページ向け)

  • 共通方針をドキュメント化してチームで統一する
  • API/HTML/静的アセットの標準テンプレートを分ける
  • 旧設定から移行する際は競合ディレクティブを棚卸しする
  • 運用開始後に実測ヘッダーを定期レビューする

site_map ルールに基づいて、次に確認すべきページを表示しています。

  1. Cache Not Working Troubleshooting — キャッシュが効かない症状をヘッダーから段階的に切り分け
  2. HTTP Cache Mismatch — キャッシュ不一致の原因候補を特定
  3. Cache Response Analyzer — レスポンスヘッダーからキャッシュ可否を判定
  4. 更新したのに反映されない時の診断手順 — HTML/API/静的アセット別にキャッシュ方針を確認し、反映遅延を短時間で切り分ける
  5. Cache系ツールの使い分け — 「更新されない」「304が返らない」「CDNだけ違う」を症状別に最短で分岐
  6. Cache-Control Inspect — Cache-Control ディレクティブを分解・解釈
  7. Cache Key Inspect — URL/Vary/ヘッダーからキャッシュキー分岐を可視化
  8. ETag Inspect — ETag と If-None-Match の整合を解析

キャッシュ制御

Cache-Control/Expires/Age を横断して配信ポリシーを診断