URL / URI Tools

URL解析見た目の文字列と接続先を切り分ける

見た目の文字列と接続先を切り分ける

URL解析

入力

入力はこのブラウザー内で処理され、サーバーには送信されません。

結果

オプション

相対参照には有効な基準が必要です。基準があれば空の参照も解析できます。

WHATWGの規則で正規化します。元の入力と基準は書き出しに含まれません。

authorityの認証情報は常に隠し、hrefから除去します。パスやクエリ、フラグメントの秘密は検出しません。

入力と基準は各100,000UTF-16単位、パラメータは1,000項目、出力は4,000,000単位まで。

URLまたは基準を入力するか、例を読み込んでください。

URL解析は、ログに残ったリンクの読み違いを調べるときに役立ちます。@の前にある名前、省略されたポート、解決済みのパスを、ブラウザーと同じ規則で確認できます。

URLパーサーによるURL分解の結果はJSONで表示します。URL構造とクエリパラメータを一緒に読み取れ、同名の値も入力順に残ります。

URL解析で見落としを減らす

名前があってもホストとは限らない

URL解析ではhostnameとhostを区別し、userinfoは常に伏せ字にします。結果のhrefからは認証情報を取り除くため、@より前の文字を接続先と取り違えずに確認できます。

アドレスが色別の構成要素に分かれ、認証情報の部分だけ隠されている。

相対参照の基準を確かめる

../assets/logo.svgの解決先は基準URLによって変わります。/docs/guide/を基準にすると/docs/assets/に進む様子を、元の入力を変更せず確認できます。

基準となるアドレスと相対パスが一つの完全なアドレスに合流する。

結果の違いを読み解く順番

01

末尾のスラッシュに注意する

相対参照には有効な基準URLが必要です。参照が空でも基準があれば解析できます。無効な基準を指定した場合は絶対URLの入力でもエラーになります。

02

正規化された値を比較する

HTTPSの443など既定ポートは空になり、ホストは小文字化され、..は解決されます。クエリの+は空白、%2Bはプラス記号になります。

03

更新後の結果を書き出す

自動解析は350ミリ秒待って実行します。オフなら解析ボタンかCtrl/Cmd+Enterを使用。編集後は古い結果を書き出せません。例とクリアは置換をプレビューし、適用後に一度元に戻せます。

報告に含まれる項目

ホストとオリジン

hostには既定以外のポートが付き、hostnameには付きません。IPv6の角括弧は維持されます。通常のウェブURLではoriginにスキームも含まれます。

重複を残したクエリ

同じキーでも個別の項目になります。空の名前や値も扱いますが、flagとflag=の違いは空文字へ統合されます。

JSONと正規化URL

構成要素とクエリをJSONで確認するか、認証情報を除いたhrefを選べます。基準の有無は真偽値で記録し、元の入力や基準そのものは出力しません。

ウェブ以外のスキーム

mailto:、data:、blob:、file:もネイティブの規則で処理します。hostが空、originが"null"という結果も仕様上あり得ます。

元の表記と同じとは限りません

WHATWGの正規化
ホストの大文字や特殊なIPv4表記、ポート、パスが書き換わる場合があります。入力した表記が残るのは編集欄だけで、書き出しには含めません。 先頭と末尾のC0制御文字・空白、内部のタブ・CR・LFは除去され、単独サロゲートはU+FFFDになります。
クエリは寛容にデコード
URLSearchParamsは+を空白として扱い、不正なパーセント表記の一部も許容します。%FFなど不正なUTF-8は置換文字となり、厳密な文字コード検証には使えません。
隠すのはauthorityの認証情報
username、password、userinfoがある場合は***で表示し、hrefでは除去します。blob内の入れ子のauthorityにも対応しますが、パスやクエリ、フラグメントの秘密を検出する機能ではありません。 blobの入れ子は32階層まで処理し、それより深いパスや、@を含む解析不能な入れ子パスは全体を隠します。
接続や安全性は確認しない
ナビゲーション、HTTP通信、DNS照会は行いません。解析成功は到達性や安全性を保証せず、PSLによる登録ドメインの分割もしません。
不透明パスには別の規則
mailto:やdata:のパスはフォルダーではありません。通常の相対参照の基準に使えないURLもあります。file:の解析でファイルの存在や読み取り可否は分かりません。
途中までの結果は返さない
入力と基準は各100,000UTF-16単位、クエリは1,000項目、出力は4,000,000単位まで。上限を超えると切り詰めずエラーにします。

URL解析のよくある質問

hostとoriginはどう使い分けますか?

https://example.com:8443/aならhostはexample.com:8443、originはhttps://example.com:8443です。hostnameにはポートが付きません。既定ポートは正規化で省略されます。

入力したパスが正規化されるのはなぜですか?

文字列を区切るだけでなくURL標準で解釈するためです。HTTPSの/a/../bは/bになります。元の書き方を保管する用途では入力欄の原文を確認してください。

解析時に外部へURLが送られますか?

解析はこのブラウザー内で行われ、入力したアドレスを分析サーバーに送ったり、その接続先を開いたりしません。

userinfoで接続先を誤認するのはなぜですか?

https://trusted.example@other.example/のtrusted.exampleはユーザー名です。接続先のhostnameはother.exampleなので、@の前だけで判断できません。結果では認証情報を隠します。

ホスト名のxn--表記は何を意味しますか?

国際化ドメインのラベルをASCIIで表すPunycodeの接頭辞です。ブラウザーの解析結果をそのまま表示し、所有者や安全性の判定は行いません。

問題がありますか?

気になるリンクを確認する

URL解析で基準と解決先を照合し、必要な構成要素や正規化URLを書き出してください。