How does URL parsing work?
The browser URL API reads the string, normalizes the scheme and host, and exposes hostname, pathname, searchParams, and hash—the same as JavaScript new URL().
Uses the browser URL API locally. Parsed URLs are never uploaded to EverydayTools servers.
Instantly decompose any URL into protocol, domain, path, query, and hash—with visual breakdown, UTM detection, and JSON export, all in your browser.
A URL parser splits a web address into protocol, host, path, query string, and hash fragment—using the same browser URL API as fetch() and window.location, entirely in your browser.
Developers use URL parsers to debug OAuth redirects, inspect UTM campaign links, validate API endpoints, and teach URL anatomy. This tool adds a color-coded visual breakdown, registrable-domain heuristics, query-parameter tables with UTM detection, and JSON export—all without uploading your input.
Pair with URL Encoder when values contain spaces or reserved characters. Use Query String Parser when you only need to edit the query portion.
hostname ≠ host — host includes the port; origin = scheme + host for CORS. Query strings live before #; fragments are client-side only.
Concise answers for common searches — definitions, steps, and comparisons.
The browser URL API reads the string, normalizes the scheme and host, and exposes hostname, pathname, searchParams, and hash—the same as JavaScript new URL().
Protocol (https:), hostname (example.com), port (8080), pathname (/path), query string (?key=value), hash (#section), and optional username:password credentials.
The query string starts with ? and contains key=value pairs separated by &. Servers receive it; duplicate keys may appear multiple times.
The fragment after # is for client-side navigation—browsers do not send it to the server. Example: /page#pricing scrolls to an anchor.
The hostname is the domain or IP without port—example.com or [2001:db8::1]. host adds the port when non-default.
Yes. Parsing runs entirely in your browser. URLs you enter are not uploaded to EverydayTools servers.
Paste a link, click This page to parse the current URL, or tap a quick example (Website, UTM, OAuth, API).
Read the color-coded visual breakdown, one-line summary, and key fields—hostname, path, origin, query, and fragment—with per-field copy.
When the URL has a query string, filter and copy individual keys or the full JSON map.
Copy summary for tickets, Copy JSON for fixtures, or Download parsed-url.json. Open All components for subdomain, port, and registrable domain.
Common real-world scenarios where this tool saves time.
Web developers
Confirm pathname, origin, and query params before writing Express, Next.js, or nginx rules.
SEO specialists
Extract UTM parameters, check URL length, and verify tracking tags on landing pages.
API engineers
Validate OAuth redirect_uri, ports, and query signatures from identity providers.
Security analysts
Spot javascript: or data: schemes and embedded credentials—without executing code.
Support teams
Paste URLs from tickets or logs into a readable breakdown instead of manual string splitting.
Students
Visual color coding teaches protocol, subdomain, path, query, and fragment in one view.
Step-by-step chains that connect related tools for common tasks.
Input
https://everydaytools.pro/url-parserOutput
hostname everydaytools.pro · path /url-parserBasic HTTPS site with no query or fragment.
Input
https://blog.example.com/2026/guide#introOutput
pathname /2026/guide · hash #introFragment anchors scroll position in the browser only.
Input
https://site.com/?utm_source=email&utm_medium=newsletter&gclid=abcOutput
UTM + gclid flagged as trackingMarketing links carry analytics parameters in the query string.
Input
https://api.example.com:8443/v2/users?page=2Output
port 8443 · query page=2Non-default ports appear in host and port fields.
Input
https://app.example.com/auth/callback?code=abc&state=xyzOutput
pathname /auth/callback · keys code, stateVerify redirect paths and state tokens during auth debugging.
Input
http://[::1]:3000/debugOutput
IPv6 host · localhost insightBracketed IPv6 addresses parse like modern browsers.
Input
mailto:team@example.com?subject=HelloOutput
scheme mailto · subject in searchNon-HTTP schemes expose path and parameters differently.
Input
ftp://files.example.com/pub/readme.txtOutput
scheme ftp · path /pub/readme.txtFTP URLs parse hostname and pathname for legacy file links.
Input
https://user:pass@internal.example.com/adminOutput
username user · security warningEmbedded credentials trigger a warning—avoid in production.
Input
https://shop.test/cart?tag=sale&tag=featuredOutput
tag → [sale, featured]Repeated keys surface as arrays so you do not drop values silently.
EverydayTools uses the browser URL API (the same standard as Node.js url.URL). Input is trimmed; web hosts without a scheme get https:// prepended. Relative paths resolve against https://example.com. Query keys are collected with duplicate detection; domain labels use a simplified public-suffix heuristic for registrable domain extraction.
Formula
origin = protocol + '//' + host
host = hostname + (non-default port)
search = '?' + query string
hash = '#' + fragment (not sent to server)| Part | Example | Sent to server? |
|---|---|---|
| Protocol | https: | Yes (scheme) |
| Hostname | api.example.com | Yes (Host header) |
| Port | :8080 | Yes (implicit in connection) |
| Path | /v1/users | Yes |
| Query | ?page=2 | Yes |
| Fragment | #top | No — browser only |
| Credentials | user:pass@ | Yes (deprecated—avoid) |
| Category | Schemes | Notes |
|---|---|---|
| Web | http:, https:, ws:, wss: | https:// prepended when scheme omitted |
| File transfer | ftp:, ftps: | Hostname + path parsed |
| Communication | mailto:, tel: | Address in pathname, params in search |
| Network | IPv4, IPv6, localhost | No subdomain/TLD breakdown for IPs |
| Custom | Any registered scheme | javascript: and data: flagged as dangerous |
Use URL Parser to decompose a full href. Switch to a related tool when you need encoding, query-only editing, or a different task entirely.
| Related tool | Use this tool when | Use related tool when |
|---|---|---|
| URL Encoder / Decoder | You have a complete URL and need to see protocol, host, path, and query parts. | Query values contain spaces, &, or non-ASCII characters and must be percent-encoded first. |
| Query String Parser | You need hostname and path context around the query string. | You only have ?key=value pairs to edit, sort, or rebuild without a full URL. |
| URL Builder | You are inspecting an existing link someone sent you. | You are constructing a new URL from scratch with base, path, and params. |
| JSON Formatter | Query values are plain text or simple key=value pairs. | A query value contains JSON that needs validation and pretty-printing. |
Parsing reveals scheme + host—your app must still allowlist redirect_uri values in code.
Raw spaces or illegal characters make URL() throw. Encode first, then parse the result.
user:pass@host exposes secrets in the href. Use headers or tokens instead.
Copy the query map into unit tests so expected keys stay aligned with production URLs.
hostname is example.com; host is example.com:8080 when a port is set.
The URL API keeps + literal. HTML form bodies use + for spaces—decode based on your data source.
Servers may keep only the last value. Check the query table for every occurrence.
Never open dangerous schemes from untrusted sources—the tool flags them but does not execute code.
Paste only the URL portion if logs wrapped or prefixed with timestamps.
Likely cause: Unencoded spaces, broken IPv6 brackets, or truncated paste.
Fix: Encode special characters, fix brackets, or paste from the first http/https only.
Likely cause: The key may be in the hash fragment, duplicated, or nested inside another value.
Fix: Check fragment (#) placement or decode nested values with URL Encoder first.
Likely cause: Multi-part TLDs use a heuristic, not the full Public Suffix List.
Fix: Treat registrable domain as approximate; verify critical domains manually.
Likely cause: Non-HTTP schemes store the address in pathname, not hostname.
Fix: Read Path and Query fields in Step 2—or open All components for full detail.
URL Parser only reads the string—it never HTTP-requests the destination. Use curl, browser DevTools Network tab, or an API client to test live responses.
Use Query String Parser to edit, sort, and rebuild query parameters without needing a full href with protocol and host.
URL Builder is better for assembling base URL, path segments, and parameters. Parse afterward if you need to verify the result.
javascript: and data: warnings are educational only. Use a dedicated link scanner or security sandbox for threat classification.
This tool uses a simplified public-suffix heuristic—not the full PSL. Use a domain-intelligence service for compliance or trademark disputes.
Start with URL Encoder / Decoder to encode values, then parse the finished href here to confirm structure.
Continue the workflow with the right follow-up tool.
Advertisement
Paste any URL into the tool above. Parts update as you type in your browser—no account or server upload.
hostname is example.com (or an IP). host adds the port when non-default—example.com:8080. origin = scheme + host for CORS.
Yes—192.168.1.1, [2001:db8::1], localhost, and [::1] parse with IP detection. Subdomain and TLD fields are omitted for IP hosts.
Tracking keys appear in the query table when present. Warnings for HTTPS, dangerous schemes, and long URLs show inline in Step 2.
Copy summary (plain text), Copy JSON (structured object), or Download parsed-url.json. Open All components for subdomain, port, and registrable domain.
Yes—those schemes are preserved. mailto: and tel: show the address in the path field rather than a hostname hierarchy.
Usually unencoded spaces, broken IPv6 brackets, or extra text from a log line. Encode problematic characters or trim to the URL substring only.
Only in your browser localStorage after you copy a result—not on EverydayTools servers. Clear your browser data to remove it.
URL Parser runs entirely in your browser—inputs are not uploaded to EverydayTools servers.
Uses the WHATWG URL API—the same standard as modern browsers and Node.js url.URL.
Paste triggers instant local parsing with visual breakdown, query tables, and optional JSON export. No network requests are made for your input.
Try the UTM example—confirm utm_source and utm_medium appear in the query table. Paste https://example.com/path?q=1 and expect hostname example.com and query key q.
Limitations: Registrable domain uses a simplified suffix list, not the full PSL. Does not fetch remote URLs or execute javascript:/data: payloads.
Component breakdown and scheme warnings only—not a malware or phishing scanner.
Part of Developer Tools
More free tools for the same workflow.
Advertisement
Reviewed by EverydayTools Editorial Team on 2026-06-02.