URL Parser

Paste a URL to break out every part - scheme, host, port, path, query parameters and fragment - then edit any parameter and watch the URL rebuild live.

Scheme
-
Host
-
Port
-
Path
-
Origin
-
Fragment
-

Query parameters

Edit a decoded value to rebuild the URL below.

KeyRaw valueDecoded value (editable)

The anatomy of a URL

Read left to right, a URL is a stack of parts: scheme://userinfo@host:port/path?query#fragment. The scheme (https) says which protocol to speak. The optional userinfo (user:pass@) carries credentials. The host and port say where to connect - the port is often implied (443 for https, 80 for http). The path points at a resource on that server. The query (after ?) passes named parameters, and the fragment (after #) points at a spot within the returned page.

The interview fact: fragments never leave the browser

Here is the detail that trips people up. Everything up to and including the query string is sent to the server in the request line. The fragment - everything after the # - is not. The browser strips it off and keeps it locally, which is why it drives client-side routing and in-page anchors but can never be read by your backend. If a value has to reach the server, it belongs in the query string, not the fragment.

Percent-encoding

A URL may only hold a restricted character set, so anything outside it is percent-encoded: a space becomes %20, an ampersand inside a value becomes %26, and so on. The table above shows each parameter twice - the raw encoded value and the decoded value - and lets you edit the decoded form so the tool re-encodes it correctly for you. For bulk encoding, the URL encoder handles whole strings, and the JSON formatter or JWT decoder help once you have pulled a value out of a link.

Frequently asked questions

What are the parts of a URL?
A full URL is scheme://userinfo@host:port/path?query#fragment. For https://example.com:8443/docs?q=cats#top the scheme is https, the host is example.com, the port is 8443, the path is /docs, the query is q=cats and the fragment is top. Only the scheme and host are always required.
Does the fragment get sent to the server?
No. Everything after the # (the fragment or hash) stays in the browser and is never sent in the HTTP request. That is why single-page apps use it for client-side routing and why you should never put anything the server needs after a #. The query string, before the #, does reach the server.
What is percent-encoding?
URLs can only contain a limited set of characters, so anything else - spaces, accents, symbols like & or ? inside a value - is written as a percent sign followed by its byte in hex. A space becomes %20, an ampersand becomes %26. This tool shows both the raw encoded value and its decoded, human-readable form.
Why does my URL fail to parse?
The most common reason is a missing scheme. Bare text like example.com/page is not a valid URL until you add https:// in front, so this tool tries that automatically. Other causes are spaces in the host, or stray characters that need percent-encoding.
What is the difference between origin and host?
The host is just the domain and optional port, like example.com:8443. The origin is the scheme plus host, like https://example.com:8443, and is what browsers use for the same-origin security policy. Two URLs share an origin only if scheme, host and port all match.