httpurlbrowser

What is the maximum length of a URL in different browsers?



Solution

  • Short answer - de facto limit of 2000 characters

    If you keep URLs under 2000 characters, they'll work in virtually any combination of client and server software, and any search engine.

    For specific use cases, longer URLs can be considered. Outside of search engines, 8000 characters offers wide compatibility as of 2023. Read on for all the details...

    Longer answer - first, the standards...

    The original HTTP/1.1 specification, published in 1999, RFC 2616, said in section 3.2.1:

    The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).

    In 2014, this was obsoleted by an updated specification largely to match actual usage, RFC 7230; it suggests:

    Various ad hoc limitations on request-line length are found in practice. It is RECOMMENDED that all HTTP senders and recipients support, at a minimum, request-line lengths of 8000 octets.

    In 2022, a new update was published, defining HTTP semantics independently of HTTP version (HTTP/1.1, HTTP/2, HTTP/3). RFC 9110, section 4.1, says:

    It is RECOMMENDED that all senders and recipients support, at a minimum, URIs with lengths of 8000 octets in protocol elements. Note that this implies some structures and on-wire representations (for example, the request line in HTTP/1.1) will necessarily be larger in some cases.

    ...and the reality

    That's what the standards say. For the reality, there was an article on boutell.com (link goes to Internet Archive backup) that discussed what individual browser and server implementations will support. The executive summary is:

    Extremely long URLs are usually a mistake. URLs over 2,000 characters will not work in the most popular web browsers. Don't use them if you intend your site to work for the majority of Internet users.

    (Note: this is a quote from an article written in 2006, but in 2015 IE's declining usage means that longer URLs do work for the majority. However, IE still has the limitation...)

    Internet Explorer's limitations...

    IE8's maximum URL length is 2083 chars, and it seems IE9 has a similar limit.

    I've tested IE10 and the address bar will only accept 2083 chars. You can click a URL which is longer than this, but the address bar will still only show 2083 characters of this link.

    There's a nice writeup on the IE Internals blog which goes into some of the background to this.

    There are mixed reports IE11 supports longer URLs - see comments below. Given some people report issues, the general advice still stands.

    Search engines like URLs < 2048 chars...

    Be aware that the sitemaps protocol, which allows a site to inform search engines about available pages, has a limit of 2048 characters in a URL. If you intend to use sitemaps, a limit has been decided for you! (see Calin-Andrei Burloiu's answer below)

    There's also some research from 2010 into the maximum URL length that search engines will crawl and index. They found the limit was 2047 chars, which appears allied to the sitemap protocol spec. However, they also found the Google SERP tool wouldn't cope with URLs longer than 1855 chars.

    CDNs have limits

    CDNs also impose limits on URI length, and will return a 414 Too long request when these limits are reached, for example:

    (credit to timrs2998 for providing that info in the comments)

    Additional browser roundup

    I tested the following against an Apache 2.4 server configured with a very large LimitRequestLine and LimitRequestFieldSize.

    Browser     Address bar   document.location
                              or anchor tag
    ------------------------------------------
    Chrome          32779           >64k
    Android          8192           >64k
    Firefox          >300k          >300k
    Safari           >64k           >64k
    IE11             2047           5120
    Edge 16          2047          10240
    

    See also this answer from Matas Vaitkevicius below.

    Is this information up to date?

    This is a popular question, and as the original research is ~14 years old I'll try to keep it up to date: As of Sep 2023, the advice still stands. While modern browsers will support longer URLs, search engines do not so the headline figure remains "under 2000 chars"