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)。ポートがスキームのデフォルトのときはポートが省略されるため、両者は同じに見えます。
- フラグメント(#...)はサーバーに送信されますか?
- いいえ。# より後はすべてブラウザー内に留まり、サーバーが見ることはありません。シングルページアプリが歴史的にクライアントサイドルーティングに使ってきた理由であり、# の後に置かれたアナリティクスパラメーターがバックエンドから見えない理由でもあります。