URL Parser
Inspect a complete URL as labeled parts, including protocol, host, path, query parameters and fragment. The URL is parsed locally and is never fetched.
Runs locally in your browser
Parsing uses your browser’s URL API; the entered address is never fetched.
Discuss a result
Write a short summary and review it before posting. Your tool inputs are never copied automatically.
What is the URL Parser?
Inspect a complete URL as labeled parts, including protocol, host, path, query parameters and fragment. The URL is parsed locally and is never fetched.
How to use it
- 1Paste a full URL including its scheme.
- 2Read the parsed fields and individual query parameters.
- 3Edit the URL to see how each part changes.
How it works
The built-in URL API validates and separates the URL. URLSearchParams iterates decoded query names and values.
Inspect a search URL
In “https://example.com/search?q=tools#top”, the path is “/search”, q is “tools”, and the fragment is “#top”.
Limitations & notes
- Relative URLs require a base URL and are not accepted here.
- Parsing does not test whether the remote site exists.
Frequently asked questions
What is the difference between host and hostname?
The hostname is only the domain or IP address, such as example.com. The host adds the port when one is written and is not the default, giving example.com:8080. For https://example.com:8080/articles the tool shows host example.com:8080, hostname example.com and port 8080. If you type the scheme's default port explicitly, such as :443 for https, the browser drops it and the port shows as (default).
How are repeated query parameters and plus signs handled?
Each parameter gets its own row, in order, so ?tag=x&tag=y shows two Query: tag rows with values x and y. Many servers read repeated keys as an array, while others keep only the first or last value, so this view helps you see exactly what is being sent. Values are decoded: a plus sign becomes a space and %20 becomes a space, so q=browser+tools displays as browser tools.
Is the part after # sent to the server?
No. The fragment, shown here as Fragment, stays in the browser. It is used to jump to an anchor on the page or by single-page apps for client-side routing, and it is not included in the HTTP request. That is why tracking or login data placed after # will not appear in server logs, and why changing only the fragment does not reload a page.
Why does my international domain look like xn-- in the result?
Domains with non-ASCII letters are converted to Punycode, the ASCII form DNS actually uses. A hostname like bücher.example is shown as xn--bcher-kva.example. Both refer to the same site. Seeing the xn-- form is also a useful check for lookalike phishing domains, where a letter from another alphabet imitates a Latin one. The path keeps its percent-encoding, so a space there appears as %20.
Why does the parser reject my URL?
It needs an absolute URL that includes the scheme. example.com/page or /blog/post fail because there is no https:// or other scheme in front, and a relative path has no base address to resolve against. Add the scheme and try again. Spaces in the domain and invalid port numbers above 65535 are also rejected. Note that username and password sections, as in https://user:pass@host, are accepted but not listed as separate fields.
No directly related discussion yet.
Start a focused thread and share the question this tool helped you explore.
Ask the community about URL Parser