RFC 3986 の基準で、よくある相対参照を解決する
兄弟のファイル、下の階層、根からのパス、1 つ上の階層、クエリだけ、フラグメントだけを、RFC 3986 の 5.4.1 と同じ基準のアドレスで解決する代表例です。
入力
基準のアドレス(絶対のアドレス 1 つ)
http://a/b/c/d;p?q
相対参照の一覧(1 行に 1 つ)
g g/ /g ../g ?y #s //g
結果
エラー 0 件・警告 0 件・情報 0 件
指摘(エラー・警告・情報)
指摘はありません。
| 基準のアドレス | http://a/b/c/d;p?q |
|---|---|
| 相対参照の数 | 7 件 |
変換した絶対のアドレス
| 行 | 相対参照 | 絶対のアドレス |
|---|---|---|
| 1 | g | http://a/b/c/g |
| 2 | g/ | http://a/b/c/g/ |
| 3 | /g | http://a/g |
| 4 | ../g | http://a/b/g |
| 5 | ?y | http://a/b/c/d;p?y |
| 6 | #s | http://a/b/c/d;p?q#s |
| 7 | //g | http://g |
検算(この結果になる理由)
基準のパスは /b/c/d;p なので、g は最後の / までの /b/c/ に結合して http://a/b/c/g、../g は 1 階層上がって http://a/b/g になります。/g は根から、?y はパスを基準のままにクエリだけ差し替え、#s は基準のクエリを残して付け、//g はホストだけが g に変わります。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- RFC 3986 5.2 の厳格な手順による変換です。ブラウザの URL の解析(WHATWG URL)とは、バックスラッシュの扱いや http:g のような書き方などで結果が異なる場合があります。
- HTML の base 要素や複数の基準のアドレスは扱いません。基準は 1 つだけ入力します。
- 変換したアドレスが実際に存在するかは確認しません。アドレスへの接続は行いません。
- %エンコードや大文字小文字の整理(正規化)はしません。入力の書き方をそのまま残して結合します。
ご利用にあたって
- ブラウザや他のソフトの実装によっては、規格と異なる結果になる書き方があります。重要なリンクは実際の環境でも確認してください。