¿Qué longitud de una URL puede tomar Internet Explorer 9?

Las versiones anteriores de Internet Explorer croaked en direcciones web de más de 2.083 caracteres (consulte http://support.microsoft.com/kb/208427 ). Mientras tanto, Firefox, Opera y Safari pueden manejar al menos 80,000.

La versión 9 trae muchas mejoras. ¿La longitud de la URL es uno de ellos?

No es la respuesta más precisa, pero se ve como 2083 caracteres en la barra de direcciones y 5165 caracteres cuando se sigue un enlace.

(No es oficial de ninguna manera, simplemente conectó una URL con 41,000 caracteres en un archivo HTM de prueba y usó Javascript para consultar la longitud de la URL).

Actualizar:

Para reproducir la prueba, cree un archivo HTML con un elemento delimitador cuyo atributo HREF tenga 6000 caracteres de longitud. Abra el archivo en su navegador y haga clic en el enlace. A continuación, abra la consola y marque window.location.href.length .

Siguiendo este procedimiento en IE9 hoy, informa la longitud como 5165 caracteres. Si cargo la misma URL manualmente a través de la barra de direcciones, informa 2083 caracteres.

Por lo que vale, IE parece truncar la URL antes de enviar la solicitud. Si pongo una URL de 24,000 caracteres en el atributo HREF del ancla, IE seguirá el enlace pero la página resultante informa una longitud de URL de 5165 caracteres. Seguir el mismo enlace en Chrome da como resultado una respuesta HTTP 414 de mi servidor de prueba.

Obtengo 5120 caracteres en una url para Internet Explorer 9.

De ninguna manera es una prueba definitiva, pero a continuación se muestra una comprobación rápida de la longitud de la URL de un atributo href en una etiqueta de anclaje.

      Test   

Escribí esta prueba que sigue agregando 'a' al parámetro hasta que falla el navegador

Parte C #:

 [AcceptVerbs(HttpVerbs.Get)] public ActionResult ParamTest(string x) { ViewBag.TestLength = 0; if (!string.IsNullOrEmpty(x)) { System.IO.File.WriteAllLines("c:/result.txt", new[] {Request.UserAgent, x.Length.ToString()}); ViewBag.TestLength = x.Length + 1; } return View(); } 

Ver:

   

Agregué límites adicionales a IISExpress applicationhost.config y web.config configurando maxQueryStringLength="32768" .

También se agregó a la configuración

    

que no ayudó para nada, finalmente decidió usar el violín para quitar el referer del encabezado.

 static function OnBeforeRequest(oSession: Session) { if (oSession.url.Contains("localhost:50766")) { oSession.RequestHeaders.Remove("Referer"); } 

Lo cual estuvo bien.

En IE9 obtuve

 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 4043