URLパーサー
すべてブラウザ内で動きます。ファイルやデータが外部に送られることはありません。
| キー | 値 | |
|---|---|---|
| プロトコル | https: | |
| ユーザー名 | user | |
| パスワード | pass | |
| ホスト | example.com:8080 | |
| ホスト名 | example.com | |
| ポート | 8080 | |
| パス名 | /path/page | |
| ハッシュ | #section | |
| オリジン | https://example.com:8080 |
| q | hello world | |
|---|---|---|
| lang | en |
このツールについて
URLを貼り付けると、ブラウザが内部的に扱うのと同じ形で構成要素に分解します。プロトコル、ユーザー名、パスワード、ホスト、ホスト名、ポート、パス名、ハッシュ、オリジンです。クエリパラメータは専用の表にデコードして一つずつ並べるので、?a=1&b=hello%20worldは長いエンコード済み文字列のままではなく、a: 1、b: hello worldとして表示されます。
URLは目で読むだけでは駄目なのか
URLは見た目で誤読しやすいからです。コロンや@記号、余分なスラッシュが1つ違う位置にあるだけで、実際に指し示す先が変わってしまいます。ブラウザはこの曖昧さを、その場の勘ではなく厳密な規則で解決しています。このツールも自前の正規表現ではなくブラウザ組み込みのURLパーサーを使っているため、WHATWG URL Standardが定める分解の仕方をそのまま再現し、実際にブラウザがそのURLをどう扱うかと一致します。貼り付けた文字列が正しいURLでない場合は、中途半端な結果を返すのではなく、そのことをはっきり伝えます。
ブラウザ標準のパーサーを使っているからこそ、ユーザー情報部分(user:pass@host)とポートがホスト名からきれいに分離されます。http://user:pass@evil.com@real-site.com/のようなURLは典型的なフィッシングの手口ですが、これは人の目で正しく解析するのが難しいからこそ成立します。ブラウザと同じコードパスに通すと、実際のホストはreal-site.comで、user:pass@evil.comはユーザー情報にすぎないと分かります。クリックする前に確認しておきたいポイントです。
貼り付けたURLはどこかに送信されるか
送信されません。解析はすべてブラウザ内で行われます。クエリ文字列に認証トークンを含むURLや、ユーザー情報部分に認証情報を含むURLを貼り付けても、外部に送信されることはありません。
どんな場面で使うか
リダイレクト先のURLを信頼する前に確認したいとき、クエリパラメータが十数個あるOAuthのコールバックを読み解きたいとき、APIのベースURLが実際どのポートを指しているか確かめたいとき、あるいは認証情報が埋め込まれたリンクが期待通りに動かない理由を調べたいときに役立ちます。このツールが読み取るプロパティについてはMDNのURL APIリファレンスを、用語に馴染みがなければMDNのURLの構造に関するガイドを参照してください。