Respuesta corta: límite de facto de 2000 caracteres
Si mantiene las URL con menos de 2000 caracteres, funcionarán en prácticamente cualquier combinación de software de cliente y servidor.
Si está apuntando a navegadores particulares, consulte a continuación para obtener más detalles sobre límites específicos.
Respuesta más larga: primero, los estándares ...
La sección 3.2.1 del RFC 2616 (Protocolo de transferencia de hipertexto HTTP / 1.1) dice
El protocolo HTTP no establece ningún límite a priori en la longitud de un URI. Los servidores DEBEN poder manejar el URI de cualquier recurso que sirvan, y DEBERÍAN poder manejar los URI de longitud ilimitada si proporcionan formularios basados en GET que podrían generar dichos URI. Un servidor DEBE devolver el estado 414 (Request-URI Too Long) si un URI es más largo de lo que el servidor puede manejar (consulte la sección 10.4.15).
Ese RFC ha quedado obsoleto por RFC7230, que es una actualización de la especificación HTTP / 1.1. Contiene un lenguaje similar, pero también sugiere esto:
En la práctica se encuentran varias limitaciones ad hoc en la longitud de la línea de solicitud. Se RECOMIENDA que todos los remitentes y receptores HTTP admitan, como mínimo, longitudes de línea de solicitud de 8000 octetos.
... y la realidad
Eso es lo que dicen los estándares . Para la realidad , había un artículo en boutell.com (el enlace va a la copia de seguridad de Internet Archive) que discutía qué implementaciones individuales de navegador y servidor admitirán. El resumen ejecutivo es:
Las URL extremadamente largas suelen ser un error. Las URL de más de 2.000 caracteres no funcionarán en los navegadores web más populares. No los use si pretende que su sitio funcione para la mayoría de los usuarios de Internet.
(Nota: esta es una cita de un artículo escrito en 2006 , pero en 2015 la disminución del uso de medios de IE que las direcciones URL largas hacen el trabajo para la mayoría Sin embargo, IE todavía tiene la limitación ...).
Limitaciones de Internet Explorer ...
La longitud máxima de URL de IE8 es 2083 caracteres , y parece que IE9 tiene un límite similar .
He probado IE10 y la barra de direcciones solo aceptará 2083 caracteres. Puede hacer clic en una URL que sea más larga que esto, pero la barra de direcciones solo mostrará 2083 caracteres de este enlace.
Hay una buena reseña en el blog de IE Internals que se centra en algunos de los antecedentes de esto.
Hay informes mixtos. IE11 admite URLS más largos. Consulte los comentarios a continuación. Dado que algunas personas informan problemas, el consejo general sigue en pie.
Los motores de búsqueda tienen gusto de URLs <2048 caracteres ...
Tenga en cuenta que el protocolo de sitemaps , que permite a un sitio informar a los motores de búsqueda sobre las páginas disponibles, tiene un límite de 2048 caracteres en una URL. Si tiene la intención de usar sitemaps, ¡se ha decidido un límite para usted! (Ver la respuesta de Calin-Andrei Burloiu a continuación)
También hay algunas investigaciones de 2010 sobre la longitud máxima de URL que los motores de búsqueda rastrearán e indexarán . Descubrieron que el límite era de 2047 caracteres, que parece estar relacionado con la especificación del protocolo del mapa del sitio. Sin embargo, también descubrieron que la herramienta SERP de Google no haría frente a las URL de más de 1855 caracteres.
Las CDN tienen límites
Las CDN también imponen límites en la longitud del URI y devolverán un 414 Too long request
cuando se alcancen estos límites, por ejemplo:
(crédito a timrs2998 por proporcionar esa información en los comentarios)
Resumen adicional del navegador
Probé lo siguiente en un servidor Apache 2.4 configurado con un LimitRequestLine muy grande y LimitRequestFieldSize .
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
Vea también esta respuesta de Matas Vaitkevicius a continuación.
¿Esta información está actualizada?
Esta es una pregunta popular, y como la investigación original tiene ~ 12 años, intentaré mantenerla actualizada: a partir de enero de 2020 , el consejo sigue vigente. A pesar de que IE11 posiblemente acepte URL más largas, la ubicuidad de las instalaciones de IE más antiguas más las limitaciones del motor de búsqueda significa que permanecer bajo 2000 caracteres es la mejor política general.