urltoolskit.org
URL utilities, in the browser
Say hi →

URL length checker

characters vs UTF-8 bytes · ten real-world limits · 414 before it happens

There is no single maximum URL length — there are about ten of them, one per piece of software in the chain, and the smallest one wins. Paste a URL (or a list) to see its length in characters and in UTF-8 bytes, then which limits it clears and which it blows past. The byte count is the one that matters: servers count bytes, not characters.

Measurements

Against known limits (longest URL in your list)

Ready.

How to use

  1. Paste one URL, or a whole list — one per line.
  2. Read the Measurements table: characters, UTF-8 bytes, the length after encodeURI, and the path and query lengths separately. Non-ASCII URLs have more bytes than characters, and that gap is what catches people out.
  3. The limits table is evaluated against the longest URL in your list. Rows you exceed are marked and outlined.
  4. Copy report gives you a plain-text summary naming every limit exceeded — useful in a bug report when someone insists 6 000 characters is fine.

Which limit will actually bite you

For a link you paste into an email, a chat message or a QR code, treat 2 048 bytes as the ceiling. It clears Internet Explorer's hard 2 083-character cap, every CDN default, and the aggressive URL-shortening some mail clients apply. Above that, the failure is silent and inconsistent — the link works for you and is truncated for the recipient.

For an API call, the wall is your server's request-line buffer: 8 190 bytes on Apache (LimitRequestLine), 8 192 on nginx (large_client_header_buffers) and on AWS ALB, 4 096 on IIS (maxUrl, with a separate 2 048 maxQueryString). Crossing it produces a 414 Request-URI Too Large from the proxy, so your application logs show nothing at all. And the buffer is shared with headers on some stacks, which is why a request that works in curl fails from a browser carrying cookies.

Note what is not a limit: browsers themselves. Chrome and Firefox handle tens of thousands of characters happily, which is exactly why long-URL bugs reach production — they pass local testing and fail at the first proxy.

FAQ

Characters or bytes — which do the limits use?

Bytes. A URL with 1 500 Japanese characters in the path is roughly 4 500 UTF-8 bytes once percent-encoded, and a server reading a 4 096-byte buffer rejects it. The table gives you both so the difference is visible.

What if I need to send more data than fits?

Use a POST body, or store the state server-side and put a short key in the URL. Long-URL workarounds — splitting across parameters, compressing into base64 — postpone the problem rather than solving it, and break caching along the way.

Does the fragment count?

Not for server limits: the fragment is never sent in the request. It does count for the browser address bar and for anything that stores the URL as a string, so it is included in the character and byte totals here.

Why is encodeURI length shown separately?

Because that is closer to what goes on the wire. If your URL contains raw spaces or non-ASCII characters, the encoded form is longer — sometimes three times longer — and that is the number the server counts.