ブログ
日本語

URL解析 — 構成要素とクエリパラメーターを確認

URLの構成要素の分解・デコード、国際化ドメイン、クエリパラメーターの編集

ブラウザー内で処理・アップロード不要

URL解析ツールとは

長いURLは、どこまでがホストでどこからがクエリなのか、目で追うのが大変です。このツールはアドレスをプロトコル、認証情報、ホスト、ポート、パス、クエリ、ハッシュに分け、パーセントエンコードされた値をデコードして読めるようにします。クエリパラメーターは表の中で直接編集できます。

使い方

  1. URL欄にhttps://で始まる完全なアドレスを貼り付けます。
  2. 「URLの構成要素」の表で、各パーツの元の値とデコードした値を確認し、必要なものをコピーします。
  3. 「クエリパラメーター」の表で、キーや値を編集したり、削除・追加ボタンを使ったりします。
  4. 変更はすぐに入力欄のURLに反映されるので、そのまま結果をコピーできます。

仕組み

  • 解析はWHATWGのURL標準を実装したブラウザーのURLオブジェクトが行います。独自のパーサーではないので、結果はブラウザーの動作と一致します。
  • 構成要素はprotocol、username、password、hostname、port、origin、pathname、search、hashです。既定のポートは空欄で表示されます。
  • パーセントエンコード(%E3%81%82)はUTF-8としてデコードします。形式が正しくないエスケープはそのまま残します。
  • 国際化ドメインのホストは、RFC 3492のPunycodeの規則に従ってxn--の形とUnicodeの形の間で変換します。
  • クエリパラメーターはURLSearchParamsで読み書きします。同じキーが繰り返されても順番は保たれ、値のないキー(?flag)は値が空のものとして表示します。
  • スキームがない、ホストが空、余計なスペースがあるといった入力にはエラーメッセージを表示し、それ以外は何もしません。このツールがそのアドレスに接続することはありません。

例

入力 結果
https://münchen.de/straße ホストxn--mnchen-3ya.de、Unicodemünchen.de
https://例え.テスト/パス?名前=山田 太郎#ハッシュ パス/%E3%83%91%E3%82%B9、デコードすると/パス、パラメーター名前=山田 太郎
https://example.com:443/a ポートは空欄(既定のポート)
https://e.com/?q=%F0%9F%98%80 q = 😀

補足

  • アドレスにユーザー名やパスワードが含まれている場合は、お知らせを表示します。そうしたURLは共有画面に映さないようにしてください。
  • mailto:やftp:など、ほかのスキームも構成要素に分解できます。

よくある質問

URLはどの規則で解析していますか?

ブラウザーに組み込まれた`URL` APIが実装しているWHATWGのURL標準です。アドレスバーやリンクとまったく同じように解析するので、ホスト名は小文字になり、既定のポート(httpsは443、httpは80)は省かれ、パスの`..`も自動で解決されます。

日本語ドメインなどの国際化ドメイン名はどう表示されますか?

Unicodeのホストは標準に従ってPunycode(`xn--`で始まるASCIIの形)に変換され、「ホスト(ASCII)」に表示されます。元の読みやすい形は「ホスト(Unicode)」に表示されます。すでにPunycodeになっているアドレスを貼り付けると、Unicodeに戻して表示します。

example.com/pathがエラーになるのはなぜですか?

URL標準では、`https://`のようなスキームがないと完全なURLとして扱われません。スキームがなければプロトコルがわからないため、スキームを付けるよう求めるエラーが表示されます。

クエリパラメーターを編集すると元のURLも変わりますか?

キーや値を編集したり、パラメーターを追加・削除したりすると、上の入力欄のURLが書き換わります。パスとハッシュはそのままで、クエリはURLSearchParamsの規則で再エンコードされます(スペースは+に、ASCII以外の文字は%XXになります)。

ほしいツールはありますか?