URL をプロトコル、ホスト、ポート、パス、クエリ、フラグメントに分け、クエリの各パラメータを並べます。
一つの URL では、ホスト、パス、クエリ、フラグメントの規則が別です。ポートは書かないことがよくあります。このページは欄を並べ、クエリの各パラメータを キー = 値 にします。パーセント符号化はしません。符号化は URL エンコード です。ホストを xn-- にするときは Punycode 変換 です。
example.com/search?q=1 です。キー = 値 です。http:// も https:// も無いときは、先頭の行で https とみなしたと知らせます。その行は説明であり、貼った文字列ではありません。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 は北京です。# より後ろは多くのサーバが受け取りませんが、ブラウザは残すので、ここでも出します。ホストの無い文字列は拒否され、パスとしては扱いません。
スキームの無いホストは、まだ完全な URL ではありません。解析するために https:// を補い、先頭の行で知らせます。
このページが見せるのは文字です。リンクを組み立て直すときは URL エンコード でもう一度符号化してください。