本文へスキップ

URL解析・クエリ編集

URL Parser & Query Editor

URLを構成要素に分け、クエリパラメータを編集できる表として見せ、書き換えた結果を組み立て直します。

URLを部品に分け、クエリ文字列を編集できる表に変え、直すそばからURLを組み立て直します。後半が、必要だと気づかれていない部分です。パーサーが黙って変えたものを知らせるパネルがあり、「curlでは通るのにブラウザでは通らない」の答えはたいていそこにあります。

🔒 ブラウザの中だけで動きますurlparsequerydebug

ホストだけでも動きます。https:// を補ったうえで、補ったことを下に表示します。

プロトコル

https:

ホスト

example.com

ポート

(既定値)

オリジン

https://example.com

パス

/products/42

フラグメント

#reviews

パスの区切り

  1. products
  2. 42

クエリパラメータ (4件、うち追跡用 2件)

  • Google Analytics campaign source
  • Google Analytics campaign medium
  • 原文: price+desc

正規化した URL

https://example.com/products/42?utm_source=newsletter&utm_medium=email&id=42&sort=price%20desc#reviews

エンコードとデコード
  • クエリの値

    a%20b%2Fc%2Bd%26e%3Df

    encodeURIComponent が残す !'()* も含めて、予約文字をすべてエスケープします。空白は %20 です。

  • フォーム本文 (application/x-www-form-urlencoded)

    a+b%2Fc%2Bd%26e%3Df

    同じ規則ですが空白が + になります。だから値に含まれる + は %2B として送る必要があります。

  • パスの区間

    a%20b%2Fc%2Bd%26e%3Df

    スラッシュはエスケープしないとパスが分かれます。ここでの + は空白ではなく、そのままのプラス記号です。

  • フラグメント (#…)

    a%20b/c+d&e=f

    URL で最も寛容な部分です。? / : @ などはエスケープなしでもそのまま使えます。

  • URL 全体 (encodeURI)

    a%20b/c+d&e=f

    構造を作る文字はそのまま残します。入力が本当に URL 全体であるときだけ正しい方法です。

URL はこのページの中で解析するだけで、リクエストは送りません。取得もリダイレクトの追跡もしないので、セッショントークンや署名付きリンクを含む URL もこのタブから出ません。

使い方

  1. URLを貼り付けます

    ホストだけでも受け取り、https://を補ったものとして扱います。その仮定は隠さずに表示します。data: URLは解析ではなく内容の説明を出します。

  2. クエリを行として編集します

    計測用パラメータが15個あると1行では読めず、15行なら一目で分かります。計測用のものには名前で印が付き、ボタン1つでまとめて消せます。

  3. パーサーが変えたものを読みます

    小文字になったホスト、Punycodeになった国際化ドメイン、解決されて消えた .. の区間。どれも黙って起こり、貼り付けたURLには見えず、そしてどれも同じ文字列を2つのクライアントで違う動きにするのに十分です。

  4. 署名が合わないときはエンコードのパネルを使います

    同じ文字列を、すべてのエンコード規則で一度に見せます。クエリの値の中のプラス記号と、パスの一部のプラス記号は、同じようにはエンコードされません。それが見えるのは、並べて置いたときだけです。

よくある質問

URLを取得しますか

しません。ページの中で解析するだけで、リクエストは出しません。取得もせず、リダイレクトも追いません。セッショントークンや署名入りのリンクが載ったURLも、このタブの中に留まります。

utm_パラメータを消しても大丈夫ですか

着地先のページにとっては大丈夫です。これらは分析ツールが読む値で、アプリケーションが読む値ではありません。例外は、パラメータに署名がかかっているリンクや、ページが実際に必要とする識別子が入っているリンクなので、共有する前に残ったものを確かめてください。

「二重エンコード」とはどういう意味ですか

値が、それぞれ親切にパーセントエンコードするシステムを2つ通ったということです。%2520は、空白が%20になり、その%がもう一度エンコードされた結果です。リダイレクト先のアドレスが壊れて届くよくある原因です。

大文字のホストが小文字になったのはなぜですか

ホスト名は大文字小文字を区別せず、URLの標準が小文字に正規化するからです。パスは違います。/Pageと/pageは別の資源で、だからURLの片側だけが変わります。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。