Resposta curta - limite de fato de 2000 caracteres
Se você mantiver os URLs com menos de 2.000 caracteres, eles funcionarão em praticamente qualquer combinação de software para cliente e servidor.
Se você estiver direcionando navegadores específicos, veja abaixo para obter mais detalhes sobre limites específicos.
Resposta mais longa - primeiro, os padrões ...
A seção 3.2.1 da RFC 2616 (Protocolo de transferência de hipertexto HTTP / 1.1) diz
O protocolo HTTP não coloca nenhum limite a priori no comprimento de um URI. Servidores devem ser capazes de lidar com o URI de qualquer recurso que eles servem, e devem ser capazes de lidar com URIs de comprimento ilimitado se fornecerem formulários baseados em GET que possam gerar tais URIs. Um servidor deve retornar o status 414 (Request-URI Too Long) se um URI for maior do que o servidor pode suportar (consulte a seção 10.4.15).
Esse RFC foi obsoleto pelo RFC7230, que é uma atualização da especificação HTTP / 1.1. Ele contém linguagem semelhante, mas também sugere isso:
Várias limitações ad hoc no comprimento da linha de solicitação são encontradas na prática. É RECOMENDADO que todos os remetentes e destinatários HTTP suportem, no mínimo, comprimentos de linha de solicitação de 8000 octetos.
... e a realidade
É o que dizem os padrões . Para a realidade , havia um artigo no boutell.com (link para o backup do Internet Archive) que discutia quais implementações individuais de navegadores e servidores suportariam. O sumário executivo é:
URLs extremamente longos geralmente são um erro. URLs com mais de 2.000 caracteres não funcionarão nos navegadores da web mais populares. Não os use se você pretende que seu site funcione para a maioria dos usuários da Internet.
(Nota: esta é uma citação de um artigo escrito em 2006 , mas em 2015 declínio meio de uso do IE que URLs mais longos fazer o trabalho para a maioria entanto, o IE ainda tem a limitação ....)
Limitações do Internet Explorer ...
O tamanho máximo do URL do IE8 é 2083 caracteres , e parece que o IE9 tem um limite semelhante .
Testei o IE10 e a barra de endereço aceita apenas caracteres 2083. Você pode clicar em um URL que seja maior que isso, mas a barra de endereço ainda exibirá apenas 2083 caracteres desse link.
Há uma boa redação no blog do IE Internals, que aborda alguns dos antecedentes disso.
Existem relatórios mistos que o IE11 suporta URLs mais longos - veja os comentários abaixo. Dado que algumas pessoas relatam problemas, o conselho geral ainda permanece.
Mecanismos de pesquisa como URLs <2048 caracteres ...
Esteja ciente de que o protocolo de sitemaps , que permite que um site informe os mecanismos de pesquisa sobre as páginas disponíveis, tem um limite de 2048 caracteres em um URL. Se você pretende usar sitemaps, um limite foi decidido para você! (veja a resposta de Calin-Andrei Burloiu abaixo)
Há também algumas pesquisas de 2010 sobre o tamanho máximo de URL que os mecanismos de pesquisa rastrearão e indexarão . Eles descobriram que o limite era 2047 caracteres, que parece aliado às especificações do protocolo do sitemap. No entanto, eles também descobriram que a ferramenta SERP do Google não lidaria com URLs com mais de 1855 caracteres.
CDNs têm limites
As CDNs também impõem limites no comprimento do URI e retornam a 414 Too long request
quando esses limites forem atingidos, por exemplo:
(agradecemos a timrs2998 por fornecer essas informações nos comentários)
Resumo adicional do navegador
Testei o seguinte em um servidor Apache 2.4 configurado com um LimitRequestLine e LimitRequestFieldSize muito grandes .
Browser Address bar document.location
or anchor tag
------------------------------------------
Chrome 32779 >64k
Android 8192 >64k
Firefox >64k >64k
Safari >64k >64k
IE11 2047 5120
Edge 16 2047 10240
Veja também esta resposta de Matas Vaitkevicius abaixo.
Essas informações estão atualizadas?
Essa é uma pergunta popular e, como a pesquisa original tem aproximadamente 12 anos, tentarei mantê-la atualizada: a partir de janeiro de 2020 , o conselho ainda permanece. Embora o IE11 possa aceitar URLs mais longos, a onipresença das instalações mais antigas do IE, além das limitações do mecanismo de pesquisa, significa que ficar abaixo de 2000 caracteres é a melhor política geral.