Anatomy of a URL
https://user@shop.example.com:8443/en/shoes/?size=42&color=red#reviews
└─┬─┘ └┬─┘ └──────┬───────┘ └┬─┘└───┬────┘ └───────┬───────┘ └──┬───┘
scheme user host port path query fragment
| Part | Purpose | Sent to the server? |
|---|---|---|
| Scheme | Protocol: https, http, ftp, mailto… | Yes |
| Host | Domain or IP of the server | Yes (Host header) |
| Port | Defaults to 443 for https and 80 for http | Yes |
| Path | Which resource on the server | Yes |
| Query | Parameters (filters, IDs, tracking) | Yes |
| Fragment | Jump to a section; used by JavaScript apps | No — stays in the browser |
Why parse URLs?
- Debugging — see exactly which parameters a link carries and whether they are encoded correctly.
- Tracking audits — tracking parameters (UTM, gclid, fbclid…) are flagged in the parameter table.
- Security — spot tricks like
https://example.com@evil.com, where the real host isevil.comand "example.com" is only a username. - SEO — the number of path segments shows how deep a page sits; short, shallow URLs are easier to crawl and share.
How the parser works
We use your browser's built-in WHATWG URL parser — the same logic Chrome, Firefox and Safari use — so the result matches what a browser actually does. Values are shown decoded, and a normalised version of the URL is provided. Nothing is sent to our server.
Related tools: decode percent-encoded values with the URL Encoder / Decoder, strip parameters with the Query Parameter Remover, or convert international domain names with the Punycode Converter.
Frequently asked questions
What is the query string in a URL?
The query string is everything after the question mark and before any # fragment. It contains key=value parameters separated by ampersands, such as ?size=42&color=red.
Is the #fragment sent to the server?
No. The fragment stays in the browser. It is used to jump to a section or by JavaScript apps, so servers and analytics logs never see it.
What is the default port for HTTPS?
Port 443. HTTP uses port 80. A URL only shows the port when it is not the default.
Why does a URL contain an @ sign?
Text before an @ in the host part is user information. Attackers use it to make a link look like it goes to a trusted site; the real host is what comes after the @.
Does the parser support international domains?
Yes. Internationalised domains are shown in their Punycode (xn--) form, which is how browsers send them.

