秒数に単位を付けた誤りと綴りの誤り

秒数に「s」を付けたり、max-age を maxage と綴ったりした壊れた値の例です。どちらもキャッシュには正しく伝わらないため、エラーと情報で知らせます。

入力

Cache-Control ヘッダーの値

max-age=3600s, s-maxage=1.5, maxage=60

どちらのヘッダーか

レスポンス(サーバーから返るヘッダー)

結果

エラー 2 件・警告 0 件・情報 2 件

指摘(エラー・警告・情報)

  • エラー 1 番目(max-age) max-age の値「3600s」は秒数(0 以上の整数)ではありません。単位や小数・負の数は書けません(RFC 9111 1.2.2)。
  • エラー 2 番目(s-maxage) s-maxage の値「1.5」は秒数(0 以上の整数)ではありません。単位や小数・負の数は書けません(RFC 9111 1.2.2)。
  • 情報 3 番目(maxage) 「maxage」は RFC 9111・8246・5861 にない指示です。理解しないキャッシュは無視します(RFC 9111 5.2.3)。綴りの誤りでないか確認してください。
  • 情報 全体 正しい有効期間(max-age・s-maxage)がありません。Expires ヘッダーがなければ、キャッシュが独自の推定(ヒューリスティック)で期間を決めることがあります(RFC 9111 4.2.2)。
ブラウザ(個人用キャッシュ)保存する。有効期間の指定なし(推定に任される)
CDN・プロキシ(共有キャッシュ)保存する。有効期間の指定なし(推定に任される)
読み取った指示の数3 個

指示ごとの意味

指示ごとの意味
指示値意味根拠
max-age3600s値が正しい秒数でないため、この指示は期間として使えない(RFC 9111 5.2.1.1 / 5.2.2.1 の書式に合わせて直す)RFC 9111 5.2.1.1 / 5.2.2.1
s-maxage1.5値が正しい秒数でないため、この指示は期間として使えない(RFC 9111 5.2.2.10 の書式に合わせて直す)RFC 9111 5.2.2.10
maxage60(このツールが知らない指示。キャッシュは無視する)RFC 9111 5.2.3

検算(この結果になる理由)

delta-seconds は 0 以上の整数だけ(RFC 9111 1.2.2 節)なので、3600s と 1.5 はエラーが 2 件です。maxage は仕様にない指示のため、キャッシュは無視する(5.2.3 節)という情報になります。有効な期間がないため要約は「有効期間の指定なし」です。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

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

ほかの入力例