Free online URL parser tool that breaks down protocol/domain/path/params/hash with visual parameter editing and real-time two-way sync
TL;DR: Free online URL parser and builder that breaks down protocol/domain/path/params/hash with visual query parameter editing and real-time two-way sync. Runs locally in your browser, no registration required.
For local tools, open DevTools → Network and search your input — it should not appear in requests.
Usage Guide
The URL parser splits a long link into six parts — protocol, host, port, path, query parameters, and fragment — so you can see exactly what each parameter carries. Parsing happens as you type (no button), entirely in your browser — most useful for debugging API params, analyzing tracking links, and inspecting encoding issues.
1. Paste to parse
An empty port is not a missing one — browsers omit the protocol default (443 for https, 80 for http); the port shows only when explicitly set to a non-default.
- Paste a full URL (must start with https:// or http://) into the input box.
- The breakdown appears instantly below: protocol, hostname, port, path and fragment, with query parameters as an editable key-value table.
- Copy any single key or value from the table and compare against what the API expects.
2. Values are shown decoded
Chinese and special characters travel percent-encoded (e.g. %E4%B8%AD), and the tool displays the decoded original for readability. The reverse caveat: when copying a parameter value back into code to rebuild a URL, anything containing Chinese or reserved characters (&, =, #) must be re-encoded with encodeURIComponent — concatenating raw breaks the URL structure.
3. Four frequent causes of "the API disagrees"
- Parameter order: most backends do not care, but some signature schemes sort params before concatenating — different order, different signature.
- Encoding differences: space as %20 versus +, escaped or unescaped slashes — languages differ in defaults, so what looks identical to the eye arrives as different bytes.
- Fragment trap: nothing after # is ever sent to the server — it is a browser-side fragment identifier, so its absence from server logs is expected.
- Passwords in URLs: basic-auth credentials in https://user:pass@host parse fine, but such URLs land in browser history and server logs — temporary debugging only.
4. Three hidden behaviors of the URL constructor
The built-in WHATWG URL constructor replaced hand-rolled parsing, but three behaviors hide in plain sight. First, href normalizes — trailing slashes, default ports :80/:443 and hostname casing get canonicalized, so comparing raw strings for equality misfires constantly. Second, searchParams.get returns null for missing keys but empty string for present-but-empty (?a=); the three states (null / empty / valued) need separate handling in conditionals. Third, searchParams iteration preserves occurrence order, but repeated keys are interpreted by the server: PHP keeps the last, Express (default parser) returns an array — the same URL parses differently on each end.
5. Using parsed values safely
- Whelist before use: allow only https/http schemes and validate hostname by suffix (to defeat evil.com.example.com tricks).
- decodeURIComponent can throw URIError on malformed % sequences — always try/catch user-controlled input.
- location.hash never reaches the server but is equally attacker-controlled; in XSS contexts it is as guilty as the query string.
6. Missing schemes, relative paths, and URL-shaped strings
This tool expects absolute http:// or https:// URLs — without a scheme the browser URL constructor may treat input as relative or throw, depending on the string. For protocol-relative //cdn.example.com/a.js or site paths like /api/v1?x=1, prepend the real scheme and host used in production before pasting, or host/path fields will not match live traffic. mailto:, data:, and blob: also parse under WHATWG rules, but their query semantics differ from http(s); do not reuse https assumptions when debugging those schemes.
FAQ
No. Parsing happens as you paste, entirely inside your browser — the URL and its access_token and friends are never sent to any server.
Yes. Query parameters are broken into a key-value table where you can add, remove, and edit values, with changes synced back to the URL. Individual keys and values can be copied with one click for comparing against expectations while debugging an API.
Yes. Chinese and other special characters travel percent-encoded in a URL, and the table shows the decoded original for readability. The reverse needs care: when you paste a value back into a URL in code, anything containing Chinese or reserved characters like &, =, and # must go through encodeURIComponent again or you will break the URL structure.
No. Browsers omit a protocol's default port (443 for https, 80 for http); only an explicit non-default port shows up. Also note the tool expects an absolute URL with http:// or https:// — for a protocol-relative address like //cdn.example.com/a.js or an in-site path like /api/v1?x=1, complete the protocol and host you actually request with before pasting.
Very much so — the usual suspects are visible in the breakdown: whether spaces became %20 or + and whether slashes are escaped differs by language, so identical-looking URLs can carry different bytes; some signature checks sort parameters lexicographically, so order alone changes the signature; anything after # never reaches the server, so it's normal to find nothing about it in API logs; and user:pass@host credentials land in browser history and server logs — keep those to throwaway debugging.
Whitelist before use: allow only http/https schemes and validate hostname suffixes to defeat bypasses like evil.com.example.com. decodeURIComponent throws a URIError on malformed % sequences, so wrap user-controllable input in try/catch. And location.hash never reaches the server but is just as attacker-controllable — treat it like query in XSS contexts.
Related Tools
Related Articles
Online URL Params Parser: Extract and Analyze URL Query Parameters
Learn how to parse and analyze URL query parameters — duplicate keys, +/space rules, URLSearchParams edges, and how to extract or rewrite params with an online tool.
Base64 vs Base64URL: Padding, JWT Segments, and PEM Line Wraps
Standard Base64 and Base64URL differ in alphabet and padding. Learn how JWT’s three segments use Base64URL, why PEM wraps at 64 characters, and how to stop decode failures when tools disagree.
Base64 Encoding Explained: Unicode, URL-Safe Variants, and Size Increase
Understand Base64 encoding internals, why Base64 size increase is ~33%, Unicode-safe Chinese/Emoji handling, and URL-safe variants for web development.