onlinetools.dev

URLパーサー

URL をプロトコル・ホスト・パス・クエリパラメータに分解

ローカル実行
loading…
このツールについて

URL を貼り付けると分解して表示します。プロトコル、ホスト、ポート、パス、フラグメント、そしてデコード済みのキーと値のテーブルとしてのすべてのクエリパラメーターです。ブラウザーがナビゲーションに使うのと同じ WHATWG URL パーサーを使用しているため、ここで見える解釈はブラウザーが実際に適用する解釈そのものです — デフォルトポートの除去やパスの正規化といったエッジケースも含めて。

最もよく使うのはクエリパラメーターのテーブルでしょう。長い OAuth リダイレクト、アナリティクスタグ付きのリンク、API 呼び出しがひと目で読めるようになり、各値はすでにパーセントデコード済みです。スキームのない裸のドメインも受け付けます。パースの際は https:// が仮定されます。

URL エンコーダーと自然にペアになります — ここで URL をパースして必要なパラメーターを見つけ、値を編集し、あちらで再エンコードするという流れです。

よくある質問

パース結果の URL が貼り付けたものと微妙に違うのはなぜですか?
WHATWG パーサーは正規化を行います。スキームとホストを小文字化し、デフォルトポート(https の :443)を除去し、./ と ../ のパスセグメントを解決し、必要な文字をエンコードします。表示されるのは、サーバーとブラウザーが合意している正準形です。
クエリキーが重複した URL は扱えますか?
はい — 出現するたびに、順番どおりに 1 行ずつ列挙されます。キーの重複は合法でよくあることです。多くの API はそれらを配列として読みます(?tag=a&tag=b)。
host と hostname の違いは何ですか?
hostname はドメインだけ(example.com)。host は明示的な非デフォルトポートを含みます(example.com:8080)。ポートがスキームのデフォルトのときはポートが省略されるため、両者は同じに見えます。
フラグメント(#...)はサーバーに送信されますか?
いいえ。# より後はすべてブラウザー内に留まり、サーバーが見ることはありません。シングルページアプリが歴史的にクライアントサイドルーティングに使ってきた理由であり、# の後に置かれたアナリティクスパラメーターがバックエンドから見えない理由でもあります。
関連ツール