That is not a valid URL.
example.com/path- Why:
- No scheme. A URL is not the same thing as a hostname, and the parser has no basis for guessing whether you meant http or https.
- Fix:
- Add the scheme: https://example.com/path.
Encoding & Conversion
Paste a URL to see every component and each query parameter decoded. Parsing uses the same URL engine your browser does, so the result matches what the browser will actually do.
httpsdevkithub.tech—https://devkithub.tech/tools?category=encoding&sort=name#resultshttps://devkithub.tech/tools?category=encoding&sort=name#resultsencodingnameThis tool runs entirely in your browser. Your input is never uploaded, stored or logged.
Parsing uses the WHATWG URL engine that both browsers and Node already ship, rather than a regular expression. A URL pattern is the classic example of a problem that looks like pattern matching and is not: the standard is a state machine with rules for percent-encoding, internationalised hostnames, default ports and path normalisation. A hand-written pattern gets a different answer from the browser exactly where it matters, and that gap is how a URL allowlist ends up disagreeing with the code that later fetches the URL — a real and well-exploited class of bug.
What comes back is normalised, which is worth noticing. The host is lowercased, a default port is dropped because https://example.com:443 and https://example.com are the same origin, and a path containing ../ is resolved. The query string is decoded into pairs with every occurrence of a repeated key preserved, because ?id=1&id=2 is legal and different frameworks disagree about which value wins — some take the first, some the last, some build an array.
Three things are flagged rather than reported neutrally. Credentials in a URL, because they end up in browser history, server access logs and Referer headers. An http scheme, because everything after the host travels in the clear. And a hostname that converted to Punycode, meaning it was written in a non-ASCII script — the mechanism behind domains that render identically to a familiar name.
Every example below is run against this tool in our test suite, so what it says here is what the tool actually does.
example.com/pathLast updated