URL parser / query breakdown / link builder

Paste any link to break it into scheme, host, port, path, query parameters and fragment. Edit the parameter table and rebuild the link in one click — all locally.

Input URL

Waiting for input
Accepts http, https and other schemes, as well as a bare domain with no scheme.

Components

FieldValue
The parsed result appears here.

Query parameters

0 items
Edit names and values directly, or press “Delete” to drop a parameter, then rebuild the link.
Name Value Action
No parameters yet.

Rebuilt URL

The generated link appears here.

The anatomy of a URL, and the parts people get wrong

A URL is a small structured record, not an opaque string. Reading it left to right: the scheme says how to fetch it, the host says where, the port overrides the scheme default, the path identifies the resource, the query carries parameters, and the fragment points at a position inside the result.

Two details cause most confusion. The fragment — everything after # — is never sent to the server; it is handled entirely by the browser, which is why single-page applications use it (or the History API) for routing. And the port is usually invisible because each scheme has a default: 80 for http, 443 for https. A URL parser shows the default rather than leaving you to guess.

The query string is the part worth a tool, because it is where hand-editing goes wrong. Parameters are name=value pairs joined by &, both name and value percent-encoded. Names are case-sensitive, repeated names are interpreted as an array by many server frameworks, and a value containing & or = must be encoded or it silently splits into a different parameter. Editing in a table avoids all of that: you change the decoded value and the builder re-encodes it.

Encoding is the other half. A URL may only carry a small ASCII set, so anything else — Chinese characters, emoji, spaces, &, + — is written as %XX using the UTF-8 bytes of the character. That is why a pasted link sometimes looks twice as long: it is the same text, escaped. Note that + means a space only inside an application/x-www-form-urlencoded body, not in a path.

Finally, normalisation: when you parse and rebuild, the result can differ cosmetically from what you pasted — a default port dropped, a missing path filled in as /, characters re-encoded. That is the canonical form, and it is usually what the server sees. If you need full control over encoding itself, use the URL / Base64 encoder alongside this page.

Frequently asked questions

Why does the parser add a trailing slash or change my URL?

It does not change your input — it normalises it. The browser URL parser fills in defaults such as the path / and the default port for the scheme, which is what the server actually receives.

Are query parameter names case-sensitive?

Yes. ?Page=1 and ?page=1 are different parameters, and some servers treat repeated names as an array. Keep naming consistent.

Why do my Chinese characters turn into %XX?

URLs may only carry a limited ASCII set, so everything else is percent-encoded using UTF-8 bytes. The parser shows both the encoded and the decoded value so you can see what travels and what it means.