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 を中心にします。
参考リンク
症状別ケーススタディ(このページ向け)
仕様の優先順位を理解してポリシーを設計するページです。実装前の方針決めに使います。
- Cache-Control がある場合は Expires より優先される前提で設計する
- Pragma は後方互換用途と割り切る
- Age は配信途中の経過時間として読み解く
実装時チェックリスト(このページ向け)
- 共通方針をドキュメント化してチームで統一する
- API/HTML/静的アセットの標準テンプレートを分ける
- 旧設定から移行する際は競合ディレクティブを棚卸しする
- 運用開始後に実測ヘッダーを定期レビューする
次に見る(診断順)
site_map ルールに基づいて、次に確認すべきページを表示しています。
- Cache Not Working Troubleshooting — キャッシュが効かない症状をヘッダーから段階的に切り分け
- HTTP Cache Mismatch — キャッシュ不一致の原因候補を特定
- Cache Response Analyzer — レスポンスヘッダーからキャッシュ可否を判定
- 更新したのに反映されない時の診断手順 — HTML/API/静的アセット別にキャッシュ方針を確認し、反映遅延を短時間で切り分ける
- Cache系ツールの使い分け — 「更新されない」「304が返らない」「CDNだけ違う」を症状別に最短で分岐
- Cache-Control Inspect — Cache-Control ディレクティブを分解・解釈
- Cache Key Inspect — URL/Vary/ヘッダーからキャッシュキー分岐を可視化
- ETag Inspect — ETag と If-None-Match の整合を解析
同テーマの導線
キャッシュ制御
Cache-Control/Expires/Age を横断して配信ポリシーを診断
- Cache Not Working Troubleshooting — キャッシュが効かない症状をヘッダーから段階的に切り分け
- HTTP Cache Mismatch — キャッシュ不一致の原因候補を特定
- Cache Response Analyzer — レスポンスヘッダーからキャッシュ可否を判定
- Cache Key Inspect — URL/Vary/ヘッダーからキャッシュキー分岐を可視化
- Cache Diagnostic — キャッシュ関連ヘッダーを横断診断
- Cache-Control Inspect — Cache-Control ディレクティブを分解・解釈
- Pragma Cache Inspect — Pragma を解析して旧キャッシュ制御を確認
- Expires Inspect — Expires / Date を解析して期限挙動を確認
- Age Inspect — Age を解析して共有キャッシュ滞在時間を把握