Skip to content

URL Parser

Split a web address into its parts and list every parameter in it.

  • Free, no account
  • Nothing uploaded
  • 13 tools
Parts
schemehttps
hostshop.example.com
port8443
path/orders/1042
query?status=shipped&sort=-date&tag=a%20b&tag=c
fragment#items
originhttps://shop.example.com:8443

Normalised

https://shop.example.com:8443/orders/1042?status=shipped&sort=-date&tag=a%20b&tag=c#items

Query parameters (4)
keyvalue (decoded)
statusshipped
sort-date
taga b
tagc
Parsed by the URL class of your browser, no request made.

Nothing you paste is uploaded. The server sends connect-src 'self', so your browser blocks this page from contacting any other host. Check it yourself

Break a URL into scheme, host, port, path, query parameters and fragment, with every parameter decoded. Uses the URL parser of your browser.

The parts of a URL

https://user:pw@shop.example.com:8443/orders/1042?status=shipped&tag=a%20b#items
└─┬─┘   └──┬──┘ └──────┬───────┘ └┬─┘└────┬─────┘ └──────────┬──────────┘ └─┬─┘
scheme  credentials   host      port    path              query         fragment

The page uses the URL class of your browser, which implements the WHATWG URL standard: the same rules the address bar and fetch apply. The "normalised" line shows the address after those rules: host in lower case, default port removed, /a/../b resolved.

Query parameters

Each parameter is listed decoded, in order, repeats included. "Copy as JSON" gives an object in which a repeated key becomes an array. Whether tag=a&tag=b means a list, or the last one wins, is up to the server that receives it; the URL itself does not say.

Credentials in a URL

A user:password@ section is flagged. Addresses like that end up in shell history, logs and referrer headers, so move the secret to a header or an environment variable. To encode or decode a single value, use URL encode and decode.

Questions

Short answers to what people ask most.

What if my URL has no scheme?

https:// is assumed so the rest can be parsed, and the result says so. A host with a port such as localhost:3000 is treated as a host, not as a scheme.

Are repeated query parameters kept?

Yes. Each occurrence is listed in order. In the JSON view a key that appears more than once becomes an array of its values.

Is the fragment sent to the server?

No. Everything after # stays in the browser and is not part of the HTTP request. That is why "Copy link" on this site carries the input in the fragment.

Why does the parsed URL differ slightly from what I typed?

The WHATWG URL parser normalises: the host is lower-cased, default ports are dropped, dot segments such as /a/../b are resolved and some characters are percent-encoded. The "normalised" line shows the result.