仕様と根拠

読み方

値をカンマで指示に分け(引用符の中のカンマは区切らない)、指示名は大文字・小文字を区別せずに RFC 9111 の 5.2 節と、拡張として RFC 8246(immutable)・RFC 5861(stale-while-revalidate・stale-if-error)に照らして意味を表にします。秒数をとる指示は 0 以上の整数だけを正しい値とし、2147483648 を超える値はその値として扱います(RFC 9111 1.2.2 節)。

エラー・警告にする条件

秒数が整数でない・必要な秒数がない・指示名に使えない文字がある・引用符が閉じていない場合はエラーです。同じ指示の重複(4.2.1 節)、秒数を引用符で囲む書き方、値をとらない指示への値、no-store とほかの保存指示の同居、public と private の同居、private と s-maxage の同居、有効期間のない immutable は警告にします。

要約の見方

レスポンスのときは、ブラウザ(個人用キャッシュ)と CDN・プロキシ(共有キャッシュ)のそれぞれについて、保存するか・確認なしで使える期間を一文にまとめます。共有キャッシュの期間は s-maxage を max-age より優先します(RFC 9111 5.2.2.10)。

根拠にした仕様・資料

仕様・資料と確認日
仕様・資料確認日使った箇所
RFC 9111 HTTP Caching2026年10月28日5.2 節(指示の一覧と書式)・4.2.1 節(重複・矛盾)・1.2.2 節(delta-seconds)・5.2.3 節(未知の指示)
RFC 8246 HTTP Immutable Responses2026年10月28日2 節(immutable は引数をとらない)
RFC 5861 HTTP Cache-Control Extensions for Stale Content2026年10月28日3 節(stale-while-revalidate)・4 節(stale-if-error)

指摘の段階

入力の扱い(送信しない仕組み)

処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。

このツールでできないこと(制約)

ご利用にあたって

  • 結果は仕様(RFC)にもとづく読み解きで、特定の CDN・ブラウザでの実際の動作を保証するものではありません。
  • 本番の設定を変えるときは、検証環境で実際の応答ヘッダーとキャッシュの挙動を確認してください。