About this URL parser
A URL packs several pieces of information into one string: how to connect, which server, which resource, and extra data in the query. This parser separates them so you can read a long link at a glance or copy a single part. Percent-encoded text in the path and query is decoded, so %20 shows as a space, international domain names show in readable form next to their Punycode, and query names that appear more than once are flagged. A color-coded strip shows where each part sits, and the rebuilt URL is normalized the way a browser would write it.
How to parse a URL
- Paste the URL. Paste a link into the box, or press an example. A bare host such as example.com/page is accepted too.
- Press Parse URL. The color-coded anatomy strip and the list of components appear.
- Inspect the query. The Query parameters table lists each name and decoded value in order, and flags names that repeat.
- Copy what you need. Press Copy next to a component or parameter, or Copy rebuilt URL at the top for the normalized address.
Frequently asked questions
What if I paste a URL without a protocol?
A host such as example.com/page or localhost:3000 is read as https. A URL that starts with // keeps the page’s protocol in a browser, so the parser assumes https. A path starting with a slash is read as a relative URL.
How is a plus sign in a query handled?
In a query string a plus sign stands for a space, so a+b is shown decoded as a b. In the path a plus sign stays a plus sign, because only the query uses that rule.
What does a repeated query name mean?
A name such as role in role=admin&role=editor appears twice. Some servers keep the first value, some the last, and many frameworks build a list, so a repeated name is worth double-checking.
Why does the host show two names?
International domain names are sent as Punycode, a plain-letter form starting with xn--. The parser shows the readable Unicode name first and the Punycode name that browsers send in parentheses.
Why can the rebuilt URL differ from what I pasted?
It is written the way a browser normalizes it: the host is lower case, a default port such as 443 for https is dropped, and spaces and non-ASCII characters in the path or query are percent-encoded.