HTTP Cache Mismatch

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

状態

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

使い方

Request/Response Headers を貼り付けて「診断」。空行で区切ると Request→Response の順に判定します。

注意(このツール)

  • 中継キャッシュ(CDN/Proxy)の挙動は個別設定に左右されるため、実機ヘッダー採取が重要です。
  • 原因は複数重なることがあります。1項目ずつ修正して再観測してください。

このページについて

何をするツール?

リクエストとレスポンスのキャッシュ関連ヘッダーを比較し、効かない理由を抽出します。

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

  • Request/Response Headers を貼り付け
  • 原因候補を確認
  • 必要なら Cache Diagnostic で詳細を確認

推奨(用途別)

  • API(JSON): no-store か no-cache + validators
  • HTML: short max-age + validators / no-cache
  • 静的アセット: long max-age + immutable + versioned URL
  • Cache Response Analyzer
  • Cache Diagnostic
  • Cache-Control Inspect
  • Vary Inspect

このツールでできること

  • キャッシュミスマッチの原因候補を提示
  • リクエスト側の強制再検証を検出

注意(運用)

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

参照仕様

  • RFC 9111(HTTP Caching)
  • RFC 9110(HTTP Semantics)

FAQ

本番とステージングで結果が違う時の最短確認は?

同時刻・同一URLで Cache-Control、Vary、Age、ETag の差分を揃えて比較してください。

CDNだけ古いレスポンスを返す原因は?

s-maxage 設計、purge漏れ、Vary分岐、エッジ圧縮差分が典型要因です。

参考リンク

  1. RFC 9111
  2. RFC 9110

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

同じリソースでも環境ごとに挙動が違う場合、ヘッダー差分を軸に原因を狭める用途です。

  • 本番とステージングで Cache-Control / Vary の差分を比較する
  • CDNが付与する Age / Via / X-Cache 系ヘッダーを確認する
  • 圧縮有無で ETag が変わっていないかを確認する

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

  • 比較対象は同時刻・同一URL・同一メソッドで揃える
  • 差分の有無だけでなく影響範囲を記録する
  • Vary対象ヘッダーを最小化して分岐数を管理する
  • デプロイ時にヘッダー差分チェックを自動化する

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

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

キャッシュ制御

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