If-Range Inspect

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

状態

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

使い方

If-Range か Request Headers を貼り付けて「解析」。ETag/日時のどちらかを判定します。

注意(このツール)

  • If-Range: のヘッダー行でも解析できます(複数行の貼り付けもOK)。

このページについて

何をするツール?

If-Range を解析し、条件が ETag なのか日時なのかを判定します。

Range リクエストの「差分取得」や「変更検知」に使われます。

基本(If-Range の役割)

  • If-Range は「一致すれば Range を適用、違えば全体を返す」ための条件です。
  • 条件は ETag または Last-Modified の日時です。
  • 一致すれば 206、違えば 200 が返るのが一般的です。

入力の例

  • If-Range: "abc123"
  • If-Range: Wed, 21 Oct 2015 07:28:00 GMT
  • Request Headers をまるごと貼り付け

よくある落とし穴

  • ETag と日時を混在させる(形式不正)
  • If-Range が古いままなので毎回 200 になる
  • サーバーが If-Range を無視して 200 を返す
  • ETag が弱い(W/)だと一致判定が緩くなる

If-Range を使うタイミング

大きなファイルのレジュームで「同じ内容なら途中から」「変わっていたら最初から」を実現したい時に使います。

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

  • ETag Inspect / Last-Modified Inspect で値を確認
  • Range Request Builder で Range を生成
  • このツールで If-Range を解析
  • ETag Inspect
  • Last-Modified Inspect
  • Range Request Builder
  • Content-Range Inspect
  • If-None-Match Inspect

推奨(実務)

  • Range 対応は If-Range + ETag/Last-Modified を揃える
  • Accept-Ranges を返し、206/200 の切替を明確にする
  • 大きいファイル配信で特に有効

このツールでできること

  • If-Range が ETag か日時かを判定
  • Range リクエストの条件確認

注意(運用)

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

参照仕様

  • RFC 9110(HTTP Semantics)
  • MDN: If-Range

FAQ

If-Range はいつ使う?

Range を使う時に、対象が変わっていない場合だけ部分取得したい時に使います。

If-Range と If-None-Match の違いは?

If-Range は Range 専用の条件、If-None-Match は通常のキャッシュ検証です。

参考リンク

  1. RFC 9110
  2. MDN: If-Range

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

  1. Content-Range Inspect — Content-Range を解析して返却範囲を確認
  2. Range Request Builder — Range リクエストヘッダーを生成
  3. Accept-Ranges Inspect — Accept-Ranges を解析して部分取得可否を確認
  4. Content-Length Inspect — Content-Length を解析してサイズ整合を確認

Range/部分取得

Range/Content-Range/If-Range を突き合わせて部分取得の可否を確認