仕組み
A URL is parsed against a formal grammar, and the components are hierarchical. The scheme determines how the rest is interpreted. The authority contains an optional userinfo, a host and an optional port. The path is a sequence of segments, and its interpretation depends on the scheme: for http and https it maps to a filesystem-like hierarchy, but for mailto or data it means something else entirely. The query begins after the first question mark, and the fragment after the first hash — and the fragment is never sent to the server, which is the root of an entire class of bug where an SPA route parameter turns out to be invisible to the backend.
Query strings have their own structure that the URL grammar does not describe. The convention is key=value pairs separated by ampersands, but nothing in the specification requires it, and the same key may legitimately appear more than once. Languages differ on how they expose that: PHP takes the last occurrence, Go's url.Values gives you the whole slice, and many frameworks give you an array. This tool keeps every pair as a separate row and flags a repeated key rather than silently overwriting, because the value your server actually reads depends on a language-specific decision you should be aware of.
Percent-decoding is applied for display but never lost. A parameter value of a%20b and a+b are the same value in a form-encoded context and different values in a path, so the decoded column shows the readable text while the encoded form remains what is used to rebuild the URL. This is what makes a nested URL in a redirect parameter comprehensible: the encoded value contains its own question marks and ampersands, all of them escaped, and decoding once exposes the real structure without ambiguity.
Rebuilding applies the same rules in reverse and normalises as a side effect. A default port is dropped, the host is lowercased, the path is resolved against any base you supply for relative input, and empty parameters are preserved rather than discarded. The result is a URL that is byte-identical in meaning to the input while being canonical in form, which is what you want if the URL is going to be compared, cached or signed — signature schemes hash the exact string, so a normalised URL that differs from the original by one character will fail verification.
主な利用シーン
- Break down a long tracking URL and find the real destination hidden in a redirect parameter.
- Edit a query string to change a filter or a page number without hand-encoding the result.
- Find out why a parameter your frontend set is not reaching the backend — usually a fragment or an unencoded ampersand.
- Separate a URL into host and path to build a firewall rule or a CORS configuration.
- Resolve a relative URL against a base to see the absolute form a browser would request.
- Check whether a query string has a duplicated key that different frameworks would resolve differently.
最終更新: 2026-10-14 — 本文は英語で表示されます(UI は翻訳済み)。