URL Parser
Split a URL into protocol, host, path, query parameters and fragment.
A long URL stuffed with a dozen query parameters is hard to read and easy to misread. Parsing it lays out every component in a table so you can see exactly what is being sent.
Parsing a URL
- Paste the URL you want to inspect.
- Read the breakdown of each component.
- Check the query parameters, which are listed individually and decoded.
- Look for duplicated parameters, which are a common source of bugs.
- Copy any individual piece you need.
The anatomy of a URL
- Scheme — the protocol, normally
https. Everything before the colon. - Host — the domain name, optionally with a subdomain and a port number.
- Path — the part after the domain identifying the resource, such as
/blog/post-title. - Query string — everything after the
?— key/value pairs joined by ampersands. - Fragment — everything after the
#, typically handled by the browser on page load.
The fragment never reaches your server
This surprises people regularly. Anything after the # is processed entirely by the browser and is not transmitted in the HTTP request. Your server logs will never show it, and neither will your server-side analytics.
That matters practically: you cannot read a fragment in backend code, and if you are relying on one for tracking you will need client-side JavaScript to capture it. It is also why single-page applications that used hash routing had such trouble with server-side rendering.
What parsing helps you spot
- The same parameter appearing twice, where behaviour depends on which one wins.
- Double-encoded values, which show up as literal
%25sequences. - Tracking parameters accumulating through redirect chains.
- A nested URL passed as a redirect target, encoded inside another URL.
- Unexpected ports or protocols in a link you did not write.
URL parsing questions
What are the parts of a URL called?
Scheme, host, optional port, path, query string and fragment. A URL may also carry user credentials before the host, though that form is deprecated and blocked by most browsers.
Why is the fragment not sent to the server?
By design. The fragment identifies a location within the resource rather than the resource itself, so the browser resolves it locally after the page loads.
What happens with duplicate query parameters?
It depends on the server. Some take the first value, some the last, and some collect them into an array. Because the behaviour is inconsistent, duplicated parameters are best avoided entirely.
Are query parameters case-sensitive?
The domain is not, but the path, parameter names and values generally are. ?Page=2 and ?page=2 are two different parameters to most servers.
Is my URL sent anywhere when I parse it?
Yes. Your URL is sent to the server for parsing, but it is not stored or logged; see our privacy policy for full details.