Parse a URL into its host, port, path, query string and fragment. Decode query parameters, keep repeated values and copy a JSON report. No URL is visited.
Paste an absolute HTTP or HTTPS URL, then select Parse URL or press Ctrl/Command + Enter. Review its components and decoded query parameters. Copy the normalized URL or the JSON report. Editing the input clears previous results until you parse again.
Good to know
Up to 8,192 characters and 200 query entries. HTTP(S) only; relative URLs, embedded usernames/passwords, backslashes and internal control characters are rejected. Native browser URL parsing may normalize the input. No destination request, redirect following, DNS lookup or safety/reachability check. Inputs are not uploaded or saved.
In this example, https is the protocol, example.com is the hostname, 8443 is the port, /shop is the path and details is the fragment. The query has q = green tea and tag = gift. The fragment starts after # and is separate from the query.
No. It uses the browser’s URL parser to inspect the text. It does not load the destination, check whether it exists or determine whether it is safe.
Why do some values change after parsing?
Browsers normalize URLs. A default HTTPS port of 443 is omitted, hostnames become lowercase, international names may become punycode and path dot segments are resolved. Encoded path, query and fragment fields are shown separately.
Are duplicate parameters preserved?
Yes. For ?tag=tea&tag=gift, both rows remain in the original order. The JSON parameters field is an array, so repeated names are not overwritten.
Why does a plus sign turn into a space?
Query parameters use form-style decoding: + represents a space. A literal plus sign is encoded as %2B. This rule applies to decoded query rows, not the encoded path or fragment.
What happens to malformed percent encoding?
The browser’s forgiving query decoder may retain invalid percent sequences or replace invalid UTF-8 bytes with the replacement character. This tool is an inspector, not a strict URI validator. Refer to the encoded query to see the original query representation.