http - tipos - url resolve




¿Cuál es la longitud máxima de una URL en diferentes navegadores? (11)

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, vea a continuación para obtener más detalles sobre límites específicos.

Respuesta más larga - primero, los estándares ...

RFC 2616 (Protocolo de transferencia de hipertexto HTTP / 1.1) sección 3.2.1 dice

El protocolo HTTP no coloca ningún límite a priori en la longitud de un URI. Los servidores DEBEN ser capaces de manejar el URI de cualquier recurso que sirvan, y DEBERÍAN ser capaces de manejar los URI de longitud ilimitada si proporcionan formularios basados ​​en GET que podrían generar dichos URI. Un servidor DEBERÍA devolver el estado 414 (Request-URI demasiado largo) si un URI es más largo de lo que el servidor puede manejar (consulte la sección 10.4.15).

Ese RFC ha sido 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 destinatarios 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 ver la realidad , consulte esta investigación en boutell.com para ver qué aplicaciones de navegador y servidor individuales admitirán. Vale la pena leerlo, pero 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 el uso decreciente de IE significa que las URL más largas funcionan para la mayoría. Sin embargo, IE aún tiene la limitación ...)

Las limitaciones de Internet Explorer ...

La longitud máxima de la URL de IE8 es de 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, pero la barra de direcciones solo mostrará 2083 caracteres de este enlace.

Hay un buen artículo en el blog de IE Internals que se refiere a algunos de los antecedentes de esto.

Hay informes mixtos que IE11 admite URLS más largos; vea los comentarios a continuación. Dado que algunas personas informan problemas, el consejo general sigue en pie.

Los motores de búsqueda como URLs <2048 caracteres ...

Tenga en cuenta que el protocolo de mapas de sitio , 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 pretende utilizar mapas de sitio, ¡se ha decidido un límite para usted! (ver la respuesta de Calin-Andrei Burloiu a continuación)

También hay algunas investigaciones a partir de 2010 sobre la longitud máxima de URL que los motores de búsqueda rastrearán e indexarán . Encontraron 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 encontraron que la herramienta Google SERP no podría manejar las URL con más de 1855 caracteres.

Resumen adicional del navegador

LimitRequestLine siguiente con un servidor Apache 2.4 configurado con un LimitRequestLine y LimitRequestFieldSize muy 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

Véase 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 septiembre de 2018 , el consejo sigue en pie. A pesar de que IE11 posiblemente acepte URL más largas, la ubicuidad de las instalaciones más antiguas de IE más las limitaciones del motor de búsqueda significa que permanecer bajo 2000 caracteres es la mejor política general.

¿Cuál es la longitud máxima de una URL en diferentes navegadores? ¿Difiere entre los navegadores?

¿El protocolo HTTP lo dicta?


¿Por qué es el límite de Internet Explorer solo 2K mientras que IIS tiene un límite de 16K? No creo que tenga sentido.

Así que quiero comenzar un experimento sobre límites de tamaño de URL de solicitud de Ajax.

He configurado el conector HTTP de Tomcat maxHttpHeaderSize = "1048576". Y preparó una URL muy larga.

Luego te envío una solicitud con la URL larga como la siguiente:

var url="/ajax/url-length.jsp";
jQuery.ajax(url,{data:{q:"0".repeat(1048000-url.length-4)}});

Informes de jQuery realizados. Tomcat informa que la URL solicitada es de 1048015 bytes. Fue probado con Chrome 50 e Internet Explorer 11.

Por lo tanto, los navegadores web no truncarán ni limitarán su URL intencionalmente al enviar solicitudes de Ajax.


En iOS, no hay límite para los esquemas de URL. Incluso se acepta una URL de más de 300 MB. Puedes probar una URL tan larga como esta:

NSString *path = [@"a:" stringByPaddingToLength:314572800 withString:@"a" startingAtIndex:0];
NSString *js = [NSString stringWithFormat:@"window.location.href = \"%@\";", path];
[self.webView stringByEvaluatingJavaScriptFromString:js];

Y atrapa si tiene éxito con:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"length: %@", @(request.URL.absoluteString.length));
    return YES;
}

En la URL como UI Jakob Nielsen recomienda:

la interfaz social a la Web depende del correo electrónico cuando los usuarios desean recomendarse páginas web entre sí, y el correo electrónico es la segunda forma más común en que los usuarios acceden a nuevos sitios (los motores de búsqueda son los más comunes): asegúrese de que todas las URL en su el sitio tiene menos de 78 caracteres para que no se envuelvan en un salto de línea.

Este no es el máximo, pero lo consideraría un máximo práctico si desea que se comparta su URL.


La especificación HTTP 1.1 dice:

Los URI en HTTP se pueden representar en forma absoluta o relativa a algunos
URI base conocida [11], dependiendo del contexto de su uso. Los dos
Las formas se diferencian por el hecho de que los URI absolutos siempre comienzan
con un nombre de esquema seguido de dos puntos. Para información definitiva sobre
Sintaxis y semántica de URL, consulte "Identificadores de recursos uniformes (URI): Sintaxis y semántica genéricos", RFC 2396 [42] (que reemplaza a los RFC 1738 [4] y al RFC 1808 [11]). Esta especificación adopta las definiciones de "referencia URI", "absoluteURI", "relativeURI", "port",
"host", "abs_path", "rel_path" y "autoridad" de eso
especificación.

El protocolo HTTP no coloca ningún límite a priori en la longitud de
una URI. Los servidores DEBEN poder manejar el URI de cualquier recurso que sirvan, y DEBERÍAN ser capaces de manejar URI de longitud ilimitada si proporcionan formularios basados ​​en GET que podrían generar dichos URI. * Un servidor DEBE devolver 414 (Request-URI Too Long) estado si un URI es más largo de lo que el servidor puede manejar (consulte la sección 10.4.15).

Nota: los servidores deben tener cuidado al depender de longitudes de URI de más de 255 bytes, ya que algunas implementaciones de proxy o cliente más antiguas podrían no ser compatibles con estas longitudes.

Como lo menciona @Brian, los clientes HTTP (por ejemplo, los navegadores) pueden tener sus propios límites, y los servidores HTTP tendrán límites diferentes.


La directiva de línea de solicitud de límite establece la longitud máxima de una URL. De forma predeterminada, se establece en 8190, lo que le da mucho espacio. Sin embargo otros servidores y algunos navegadores, limitan la longitud más.

Como todos los parámetros se pasan en la línea de la URL, los elementos que estaban en la contraseña de los campos ocultos también se mostrarán en la URL, por supuesto. Ninguno de los dispositivos móviles debe utilizarse para medidas de seguridad reales y, en el mejor de los casos, debe considerarse seguridad cosmética.


Los servicios de informes de ASP.NET 2 y SQL Server 2005 tienen un límite de 2028. Descubrí esto por el camino difícil, donde mi generador de URL dinámico no pasaría algunos parámetros a un informe más allá de ese punto. Esto estaba bajo Internet Explorer 8.


Parece que Chrome al menos ha elevado este límite. Pegué 20,000 caracteres en el bookmarklet y lo tomé.


Tengo experiencia con SharePoint 2007, 2010 y hay un límite de la URL de longitud que puede crear desde el lado del servidor en este caso SharePoint, por lo que depende principalmente de 1) el cliente (navegador, versión y sistema operativo) y 2) La tecnología de servidor, IIS, Apache, etc.


El servicio de asistencia de Microsoft dice "La longitud máxima de la URL es de 2.083 caracteres en Internet Explorer".

IE tiene problemas con las URL más largas que eso. Firefox parece funcionar bien con más de 4k caracteres.








browser