Developer tools

URL parser

Break a URL into its scheme, host, port, path, query parameters and fragment.

URL parser
Esc to restore

Your inputs

Web addresses often carry tokens and personal data. This page only reads the text you type and never opens the address.

An absolute URL with a scheme, such as https://example.com/page?id=7. Nothing is requested from it.

Results update as you type. Larger files run when you press Update result.

Your result

Your result will appear here.

Sensitive results stay in this page’s memory. Take care when copying or downloading them.

Your inputs stay in this browser. Nothing is uploaded or saved.

A clear answer. Here’s how.

Parses the address with the WHATWG URL Standard, the algorithm browsers use, and lists each part. The host is lower-cased, dot segments such as /./ and /../ are resolved, and the default port of the scheme is shown when none is written. The path is split into decoded segments, and the query string into its parameters with percent-decoding and “+” read as a space; repeated names are kept in order. A password in the address is never displayed. The normalised URL is how a browser would write it back.

How this is checked

3 reference checks passed These 3 cases were run when this page was built, on 20 October 2026, and all reproduce within the stated tolerance. The same cases are part of the automated tests that run on every change to Toolmoz. Engine version 1.

See the checks and where each expected answer comes from
  1. Case 1

    Inputs
    URL https://user@example.com:8443/a/b%20c?x=1&y=two#frag
    Expected, and what Toolmoz gave
    Scheme expected https, Toolmoz httpsHostname expected example.com, Toolmoz example.comPort expected 8443, Toolmoz 8443Path expected /a/b%20c, Toolmoz /a/b%20cFragment expected frag, Toolmoz fragQuery parameters expected 2, Toolmoz 2Path segments expected 2, Toolmoz 2
    Where the expected answer comes from
    RFC 3986 section 3: scheme https, authority user@example.com:8443, path /a/b%20c, query x=1&y=two, fragment frag (hand parse)
    Allowed difference
    exact
  2. Case 2

    Inputs
    URL HTTP://Example.COM/a/./b/../c
    Expected, and what Toolmoz gave
    Scheme expected http, Toolmoz httpHostname expected example.com, Toolmoz example.comPort expected 80, Toolmoz 80Path expected /a/c, Toolmoz /a/cQuery parameters expected 0, Toolmoz 0Fragment expected (none), Toolmoz (none)
    Where the expected answer comes from
    RFC 3986 sections 6.2.2.1 and 5.2.4: scheme and host are lower-cased, /./ is dropped and /b/../ collapses, giving /a/c; http defaults to port 80
    Allowed difference
    exact
  3. Case 3

    Inputs
    URL https://example.com/?q=a+b%26c&q=2
    Expected, and what Toolmoz gave
    Path expected /, Toolmoz /Query parameters expected 2, Toolmoz 2Path segments expected 0, Toolmoz 0Port expected 443, Toolmoz 443
    Where the expected answer comes from
    The query holds two parameters named q (a b&c and 2); https defaults to port 443 and the path / has no segments
    Allowed difference
    exact

What this shows: the engine reproduces independently worked values for these cases. It does not prove every possible input is right. To test an answer you were given, see how to check a number; to see what is and is not checked across Toolmoz, see the accuracy ledger.