URL / URI Tools

URL parserUnderstand the address your browser parses

Understand the address your browser parses

URL parser

Input

Your input is processed in this browser and is not sent to a server.

Results

Options

Use a valid base for relative references. An empty reference with a base is valid.

Results follow WHATWG normalization. Exports exclude the original input and base.

Authority credentials are always concealed; href removes them. This does not detect secrets in paths, queries or fragments.

Input and base: 100,000 UTF-16 units each. Maximum 1,000 parameters and 4,000,000 output units.

Enter a URL or a base, or choose the example.

The URL parser helps explain why a pasted link produces a different host, path or port than expected. Compare URL components in a JSON report without visiting the destination.

To parse URL online, supply an absolute address or a relative reference with a base. A query string parser inside the report keeps repeated parameters in order instead of overwriting them in an object.

Why use this URL parser?

Separate the destination from surrounding text

The URL parser separates hostname, host and origin. A name before @ is userinfo, not the destination; derived fields replace credentials with fixed markers and href removes them entirely.

A single address separates into colored component blocks, with its credential segment concealed.

Explain relative resolution

A base ending in /docs/guide/ makes ../assets/logo.svg resolve under /docs/assets/. Inspect the resulting path before copying the normalized URL; the original editors stay unchanged.

A base address and a relative path join into one complete address.

Read the browser’s interpretation

01

Supply the right base

A relative path needs a valid base; an empty reference with a base is also valid. A supplied invalid base is rejected even alongside an absolute input.

02

Compare meaningful differences

Default ports can disappear, domain letters become lowercase and dot segments resolve. Query values decode + as a space, while %2B remains a plus.

03

Export a current result

Automatic parsing waits 350 ms. Disable it to use Parse or Ctrl/Cmd+Enter. Editing either input disables exports until refreshed; Example and Clear offer a replacement preview and one undo.

Components with their context

Host, hostname and origin

host includes a nondefault port; hostname excludes it and retains IPv6 brackets. origin describes the scheme and authority for ordinary web URLs.

An ordered parameter list

Repeated names remain separate entries. Empty names and values survive, but a bare flag and flag= both yield an empty value.

Two result views

Read normalized components and parameters as JSON, or switch to the credential-free href. The report records whether a base was supplied without including its text.

More than web addresses

Accepted mailto:, data:, blob: and file: URLs follow native parsing rules. An empty host or an origin of "null" can be a meaningful result.

Normalization and parsing limits

WHATWG, not literal preservation
Native URL parsing can rewrite host spelling, IPv4 forms, ports and paths. Original spelling remains only in the input editors and is excluded from exports. WHATWG strips leading/trailing C0 controls and spaces, removes embedded tabs, CR and LF, and replaces lone surrogates with U+FFFD.
Forgiving query decoding
URLSearchParams preserves pair order, treats + as space and tolerates malformed percent escapes. Invalid UTF-8 such as %FF becomes replacement text; this is not strict decoding validation.
Credentials are always concealed
Authority username, password and userinfo use *** when present; exported href has no userinfo. Nested blob authorities are protected too. Path, query and fragment tokens are not scanned for secrets. Nested blob parsing stops at 32 levels; deeper paths, or unparseable nested paths containing @, are concealed in full.
No destination checks
Parsing performs no navigation, HTTP request or DNS lookup. A successful result proves neither reachability nor safety; hostname is not a registrable-domain or PSL analysis.
Scheme-specific boundaries
Opaque paths such as mailto: and data: do not behave like directory paths. Not every URL can be a base for ordinary relative references. file: parsing does not check local files.
Bounded complete results
Input and base each allow 100,000 UTF-16 units; at most 1,000 query entries and 4,000,000 output units are accepted. Exceeding a limit rejects the result instead of truncating it.

URL parser questions

How do host and origin differ?

For https://example.com:8443/a, host is example.com:8443 and origin is https://example.com:8443. hostname is example.com. A scheme’s default port is omitted after normalization.

Why is a parsed path changed?

The standard resolves dot segments and applies scheme-specific escaping. For example, /a/../b becomes /b in an HTTPS URL. The result is a parsed representation, not a copy of the original spelling.

Does URL parsing transmit my input?

The parsing operation runs in your browser. It neither submits the pasted address for analysis nor opens its destination.

Why can URL userinfo be misleading?

In https://trusted.example@other.example/, trusted.example is a username and other.example is the host. Inspect hostname; this tool conceals the username rather than displaying a potentially confusing address.

What does xn-- mean in a hostname?

It introduces a Punycode label used for an internationalized domain. The native parser returns its ASCII representation; that spelling is not a judgment about the domain’s owner or safety.

Something looks wrong?

Inspect your next link

Use the URL parser to compare a relative reference with its base, check repeated parameters and export the browser’s normalized interpretation.