URL を分解する

URL をプロトコル、ホスト、ポート、パス、クエリ、フラグメントに分け、クエリの各パラメータを並べます。

リンクを分けます。符号化はしません

一つの URL では、ホスト、パス、クエリ、フラグメントの規則が別です。ポートは書かないことがよくあります。このページは欄を並べ、クエリの各パラメータを キー = 値 にします。パーセント符号化はしません。符号化は URL エンコード です。ホストを xn-- にするときは Punycode 変換 です。

操作

  1. 完全なアドレスか、「ホスト + パス」を貼ります。例は example.com/search?q=1 です。
  2. 「入力と同時に更新」はオンのままで構いません。結果の順は、プロトコル、ユーザー名、ホスト、ポート、パス、クエリ、フラグメント、オリジン、そのあとクエリパラメータです。各パラメータは キー = 値 です。
  3. http:// も https:// も無いときは、先頭の行で https とみなしたと知らせます。その行は説明であり、貼った文字列ではありません。
  4. 例を表示すると https://user:[email protected]:8080/search?q=tea&x=1#top が入ります。ユーザーとパスワード、ポート 8080、クエリ tea、#top があります。

欄の読み方

分解はブラウザの URL 解析です。ポートを書いていないときは、ポートの行が「既定」になり、443 や 80 を手入力したように埋めません。https の既定は 443、http は 80 です。例の 8080 はそのまま出ます。ユーザー名の行は user です。secret は貼ったアドレスの中にあり、結果にパスワードだけの行はありません。画面を他人が見る場所では、使っているパスワードを貼らないでください。

クエリの値は復号されるので、パーセント形式の漢字は文字に戻ります。例の q は北京です。# より後ろは多くのサーバが受け取りませんが、ブラウザは残すので、ここでも出します。ホストの無い文字列は拒否され、パスとしては扱いません。

使う場面

  • リダイレクトの最後に、どのパラメータが付いたかを見ます。
  • コピーしたリンクに、ポートやユーザー名が隠れていないか確認します。
  • 二つのアドレスを比べる前に、オリジンだけ取り出します。

よくある質問

https を書いていないのに出る

スキームの無いホストは、まだ完全な URL ではありません。解析するために https:// を補い、先頭の行で知らせます。

クエリが文字になっている。パーセント形式が欲しい

このページが見せるのは文字です。リンクを組み立て直すときは URL エンコード でもう一度符号化してください。