URL Parser
Free online URL parser. Break any URL down into its protocol, host, port, path, query parameters, and fragment.
The parts of a URL
A URL breaks into a fixed structure: protocol (scheme), an optional userinfo (user:pass@, deprecated and rarely used today), host (hostname plus an optional port), path, query string, and fragment. This tool leans on the browser's own built-in URL parser rather than a hand-rolled one, which matters because URL parsing has more edge cases than it looks like — internationalized domain names, percent-encoding, and scheme-specific quirks are all things browsers have converged on standard behavior for over many years. Using the same parser your links actually go through means what this tool shows you matches what your browser would actually do with the URL, rather than a simplified approximation of it.
Why the URL must be absolute
A relative URL like /path?x=1 or ../images/logo.png only means something in the context of a base URL it's resolved against — a browser combines it with the page's current address to get somewhere. Without that context, "resolve this relative URL" is an ill-posed question, so this tool requires an absolute URL (one that includes a scheme, like https://) as input. If you have a relative URL and a known base, JavaScript's `new URL(relative, base)` form handles that combination — this tool's scope is decomposing an already-complete URL.
Repeated query keys and why they matter
HTTP doesn't forbid the same query parameter key appearing more than once (?tag=a&tag=b), and different frameworks handle it differently — some take the first occurrence, some the last, some collect all of them into an array. This tool lists every occurrence individually rather than silently collapsing to one, specifically so a URL with repeated keys shows its real structure instead of hiding a detail that might be exactly what's causing unexpected behavior in whatever system is consuming the URL.