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 は通常のキャッシュ検証です。
参考リンク
次に見る(診断順)
site_map ルールに基づいて、次に確認すべきページを表示しています。
- Content-Range Inspect — Content-Range を解析して返却範囲を確認
- Range Request Builder — Range リクエストヘッダーを生成
- Accept-Ranges Inspect — Accept-Ranges を解析して部分取得可否を確認
- Content-Length Inspect — Content-Length を解析してサイズ整合を確認
同テーマの導線
Range/部分取得
Range/Content-Range/If-Range を突き合わせて部分取得の可否を確認
- Accept-Ranges Inspect — Accept-Ranges を解析して部分取得可否を確認
- Range Request Builder — Range リクエストヘッダーを生成
- Content-Range Inspect — Content-Range を解析して返却範囲を確認
- Content-Length Inspect — Content-Length を解析してサイズ整合を確認