仕様と根拠
循環の考え方(RFC 9110 15.4)
RFC 9110 の 15.4 は、リダイレクトを辿る側が、永遠に続く循環を検出して止めるべき(SHOULD)としています。元から先を順に辿り、すでに通ったアドレスに戻れば循環です。自分自身を先にした行は長さ 1 の循環です。循環の一部の行はすべて「着かない」転送として示します。
連鎖の段数
A から B、B から C のように転送が続くと段数が増えます。15.4 にはかつての仕様が 5 回までを推奨していたとあり、固定の上限を持つクライアントでは途中で止まることがあります。2 段以上は情報、5 段を超えるものは警告にします。元から最後に着くところへ直接転送すると段数が減ります。
状態コードと比較のしかた
301・302・303・307・308 は 15.4.2〜15.4.9 に定められた転送の状態コードで、移転が恒久的か一時的か、メソッドを保つかの違いがあります。この表では循環や段数の判定に状態コードを使いません。3xx 以外の状態コードはエラー、前記の 5 つ以外の 3xx は警告です。先が相対の指定のときは、元のパスを基準に解きます。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 9110 HTTP Semantics | 2026年10月28日 | 15.4(循環の検知は SHOULD・かつての 5 回の推奨)・15.4.2 301・15.4.3 302・15.4.4 303・15.4.8 307・15.4.9 308・10.2.2 Location |
| RFC 3986 Uniform Resource Identifier (URI): Generic Syntax | 2026年10月28日 | 5.2.4(ドットセグメントの除去。先の相対指定を解くのに使用) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- アドレスへアクセスして、実際の転送先や状態コードを確かめることはしません。表に書かれた内容だけを調べます。
- 同じ元に複数の先があるときは、最初に書かれた行の先だけを辿ります。条件によって先が変わる転送(言語や端末で分けるなど)は表現できません。
- 最後に着くところが表にないアドレスでも、存在するかどうかは判定しません。表の外のページは終点として扱います。
- ワイルドカードや正規表現のルール(/blog/* など)は展開しません。具体的なアドレスの組を書いてください。
ご利用にあたって
- この検査は設計表の点検です。実際のサーバー設定が表のとおりに動くかは、設定後に別に確認してください。
- リダイレクトの種類(恒久か一時か)の選び方は、検索エンジンでの扱いにも影響します。この検査は種類の妥当性までは判断しません。