Skip to tool
Web engineering

URL Inspector & Query Editor

Separate, edit, encode, and rebuild every URL component.

Input0 characters
Result0 characters
Ready

Prefer a native workflow?

Keep URL Inspector & Query Editor one shortcut away.

DevSexy for Mac puts the same private workflow in a focused desktop app, with global shortcuts and no browser tab to manage.

Global shortcutOffline-readyLocal processing
Try the Mac app free

This browser tool remains free.

Parse precisely · normalize intentionally

A URL can keep its meaning while changing its bytes.

Browsers parse, normalize, encode, and serialize. That is useful—until a cache key, signature, duplicate parameter, or audit log depends on the spelling you started with.

Raw ink · copied byteshttps://User:pa%24%24@例子.test:8443/a%2Fb/c%20d?tag=red+shoes&tag=web#Top%2FSection
Normalized glass · platform serializationhttps://User:pa%24%[email protected]:8443/a%2Fb/c%20d?tag=red+shoes&tag=web#Top%2FSection

Hostname normalization is visible. Credentials, query order, and escaped path separators deserve review before reuse.

Run a URL encoding check

Inspect duplicate query keys, encode a literal plus sign, or resolve a relative path against an explicit base. These operations parse text locally; they do not request the destination.

Loading an example replaces the input and options. Expected excerpts below are taken from the actual parser output.

Keep duplicate keys and distinguish plus from space

Inspect · preserve raw input on. Query pairs retain their order; + becomes a space in the parsed query value, while %2B becomes a literal plus.

Input

https://example.test/search?tag=red+shoes&tag=C%2B%2B&empty=#results

Both tag values survive, and empty= stays an empty string. The fragment is listed separately.

01  "tag" = "red shoes"  · repeated key
02  "tag" = "C++"  · repeated key
03  "empty" = ""

Encode one query value containing C++

Encode · query component. Paste a single value, not an entire URL. This operation uses encodeURIComponent, so a space becomes %20.

Input

C++ & tea

The two plus signs become %2B%2B, the ampersand becomes %26, and spaces become %20.

C%2B%2B%20%26%20tea

Resolve a parent path against a document directory

Resolve · base URL https://example.test/docs/guide/. The trailing slash makes guide a directory.

Input

../assets/icon.svg?size=2#preview

The parent path removes guide/, retains docs/, and preserves the query and fragment.

https://example.test/docs/assets/icon.svg?size=2#preview

URL anatomy rail

Each delimiter changes the parser state.

Schemehttps:

Security and default-port context

CredentialsUser:••••@

Frequently logged or leaked

Hostxn--fsqu00a.test

IDN serializes as ASCII

Port8443

Non-default origin member

Path/a%2Fb/c%20d

%2F stays inside a segment

Query?tag=…&tag=…

Ordered key/value pairs

Fragment#Top%2FSection

Client-side; not sent in HTTP requests

Query as ordered multimap

Duplicate keys are first-class data.

Object conversion would overwrite tag=red shoes with tag=web. URLSearchParams keeps both pairs in order.

01tagred shoesplus decoded as a space
02tagwebsame key, second value
03empty∅empty value
04flag∅key-only spelling normalizes
05next/billing?step=2nested URL value

Encoding courtroom

The same glyph can carry different protocol meaning.

Spacered shoesred%20shoes

red+shoes in form-style query data

Literal plusC++C%2B%2B

A raw + may decode as space

Path slasha/ba%2Fb

Escaped slash stays inside one segment

Unicode host例子.testxn--fsqu00a.test

IDNA hostname serialization

Percent sign50%50%25

Double encoding would create %2525

Secret-bearing URL triage

Readable does not mean safe to log.

Credentials

HIGH

Strip userinfo before sharing or logging.

Access token query

HIGH

Prefer headers; query strings spread through logs and history.

Signed parameters

BYTE-SENSITIVE

Normalization or reordering can invalidate a signature.

Fragment data

CLIENT-SIDE

Not sent in HTTP, but can still leak through copied links and scripts.

Rebuild diff

Inspect the bytes created by one logical edit.

Only the final byte changed here. Re-run the comparison after sorting, decoding, IDN normalization, or component edits.

Before?tag=red+shoes&tag=web&next=%2Fbilling%3Fstep%3D2
After · one byte edited?tag=red+shoes&tag=web&next=%2Fbilling%3Fstep%3D3

Continue debugging the request

Inspect a JWT carried by a request

Decode a test token separately and distinguish readable claims from verified identity.

Compare the original and serialized URL

Use character comparison to spot escaping or normalization changes in a byte-sensitive URL.

Inspect URLs offline on your Mac

Keep URL and text tools together in the local developer toolbox.

Direct answer

What is URL Inspector & Query Editor?

Parse URL components and repeated query parameters online, compare raw input with WHATWG serialization, and review encoding changes before rebuilding the URL.

What can it do?

  • Inspect
  • Normalize
  • Encode
  • Decode
  • Resolve

How to use URL Inspector & Query Editor

  1. 01

    Select a URL or one component

    Use Inspect for a complete URL. Use Encode or Decode for one component; encoding an entire URL also encodes delimiters such as : and /.

  2. 02

    Inspect raw and serialized values

    Review hostname normalization, ordered query pairs, empty values, and repeated keys. Raw signed URLs may depend on their original spelling.

  3. 03

    Resolve or edit deliberately

    Use Resolve with a real absolute base for relative links. To change a query, edit the source and inspect it again; this workbench does not provide a separate form for editing query rows.

Frequently asked questions

Why does + become a space when inspecting a query?
URLSearchParams reads form-style query pairs, where + represents a space and %2B represents a literal plus. The separate Decode operation uses decodeURIComponent and leaves a raw + unchanged.
Does this URL parser fetch the site or check redirects?
No. Inspect, Normalize, Encode, Decode, and Resolve operate on the input text in your browser. Resolving a path does not prove that the resulting URL exists or is safe to visit.
How do I edit a query without losing duplicate keys?
Edit the URL text and inspect it again. The ordered query list preserves repeated pairs; converting them into a plain object would lose duplicates. Encode individual values once and compare the final URL before reusing signatures.