URL Parser

Break any URL down into its protocol, host, path, query, and fragment.

This tool runs entirely in your browser. Your files are never uploaded to a server.

What this tool does

Parses a complete URL with the browser's native URL API and displays its protocol, host, explicit port, pathname, query string, fragment, and origin. Query parameters are also decoded into separate key-value rows.

How to use it

Paste a full URL, including its scheme such as https://, into the input. The component validates and parses it immediately, shows an error for invalid input, and lets you copy the normalized complete URL.

Worked example

For https://example.com:8080/docs?q=hello+world&tag=a&tag=b#intro, the host is example.com:8080, port is 8080, path is /docs, fragment is #intro, and the table shows q as "hello world" plus two tag rows.

Fields in the result

Host includes the hostname and explicit port, while origin combines scheme and host. Query string retains its leading question mark, fragment retains its hash, and absent port, query, or fragment values are shown with a dash.

Normalization and decoding

The native URL constructor may normalize details such as the scheme and pathname when it creates href. URLSearchParams decodes percent escapes and plus signs for the table while preserving repeated parameters as individual rows.

Limitations

A bare domain such as example.com is rejected because no base URL is supplied; add https:// or another valid scheme. The tool checks syntax only and does not request the address, test availability, follow redirects, or assess safety.

Standards and privacy

Parsing follows the browser's implementation of the WHATWG URL standard, so exact normalization can depend on the runtime. All work happens locally in your browser; the entered address is not visited or sent to a server.

Frequently Asked Questions

Why does it say my URL is invalid?
The URL needs a protocol, like https:// or http://. Without one, the browser's URL parser can't tell what's a host and what's a path, so it's rejected.
Does this fetch or visit the URL?
No. Parsing happens entirely in your browser using the native URL API — nothing is sent over the network, and the URL doesn't need to be live.
Can it handle repeated query parameters?
Yes, each key-value pair is listed as its own row, so a query string like ?tag=a&tag=b shows two separate rows for tag.