Dev Utilities

Break a URL into its component parts

URL parser splits an absolute URL with the same WHATWG rules your browser applies and prints its parts: Protocol, any username and password, Host, Hostname, Port, Path, Search and Hash, followed by the query parameters one per line, decoded. Developers use it to see how a redirect target differs from the original link, confirm what a webhook endpoint actually points at, or pull one value out of a long tracking URL. The port is shown when it is not the default for the scheme, and international hostnames print in their punycode form.

How to use URL Parser

  1. Open URL Parser in the Toolbox101 app.
  2. Paste an absolute URL, one that starts with a scheme such as https://, into the URL box.
  3. Read the labeled lines in the Output box: Protocol, Host, Hostname, Path, Search, Hash, and Port or Username when the URL has them.
  4. Check the Query parameters list at the bottom, which shows each key and its decoded value.
  5. Click Copy to keep the breakdown, or paste a different URL and compare the two outputs.

Worked example

URL Parser returns the output below for this input.

Input

https://example.com/blog/post?page=2&tag=seo#comments

Output

Protocol: https:
Host: example.com
Hostname: example.com
Path: /blog/post
Search: ?page=2&tag=seo
Hash: #comments

Query parameters:
  page = 2
  tag = seo

Check it yourself: open URL Parser and enter the same input.

Frequently asked questions

Why do I get a "Not a valid URL" message?

The parser needs an absolute URL with a scheme. A relative path like /blog/post or a bare domain like example.com has no protocol to anchor on, so the browser's URL parser rejects it. Prefix the value with https:// or http:// and it parses.

Where does the port appear in the output?

In two places when it is not the default: Host includes it (localhost:3000) and a separate Port line shows the number. Default ports are dropped the way the browser drops them, so https://example.com:443/x reports Host: example.com and no Port line.

How are query parameters decoded?

Each key and value is percent-decoded, and a + is read as a space, which is how browsers read a query string. So ?q=hello+world&tag=caf%C3%A9 lists q = hello world and tag = café. The Search line above it keeps the original encoded text.

How are international domain names handled?

Hostnames are normalised to punycode exactly as browsers do before a request, so https://münchen.de/ reports Hostname: xn--mnchen-3ya.de. For the readable form, paste the xn-- label into the Punycode Decode tool.

What is the difference between URL parsing and URL encoding?

Parsing reads a URL and labels its parts: scheme, host, path, query, fragment. Encoding escapes characters so a value can sit inside a URL safely, turning spaces into %20. Parse a URL to understand it; encode a string to build one.

Use URL Parser now

Runs in your browser. Nothing you type is uploaded.