Сколько времени URL-адрес может получить Internet Explorer 9?

В прошлых версиях Internet Explorer проклинали веб-адреса длиной более 2083 символов (см. Http://support.microsoft.com/kb/208427 ). Тем временем Firefox, Opera и Safari могут обрабатывать не менее 80 000.

Версия 9 приносит много улучшений. Является ли длина URL одной из них?

Не самый точный ответ, но он выглядит как 2083 символа в адресной строке и 5165 символов при выполнении ссылки.

(Не является официальным, просто подключил URL-адрес с 41 000 символов в тестовый HTM-файл и использовал Javascript для запроса длины URL-адреса.)

Обновить:

Чтобы воспроизвести тест, создайте файл HTML с элементом привязки, атрибут HREF которого составляет 6000 символов. Откройте файл в своем браузере и нажмите ссылку. Затем откройте консоль и проверьте window.location.href.length .

Следуя этой процедуре в IE9 сегодня, она сообщает длину как 5165 символов. Если я загружаю один и тот же URL вручную через адресную строку, он сообщает 2083 символа.

Для чего это стоит, IE, кажется, усекает URL-адрес перед отправкой запроса. Если в атрибуте HREF привязки будет указан URL из 24 000 символов, IE будет следовать за ссылкой, но на полученной странице будет указана длина URL-адреса 5165 символов. Следуя той же ссылке в Chrome, вы получаете ответ HTTP 414 от моего тестового сервера.

Я получаю 5120 символов в URL-адресе для интернет-исследователя 9.

Ни в коем случае окончательный тест, но следующий демонстрирует быструю проверку длины URL-адреса атрибута href в привязном теге.

      Test   

Я написал этот тест, который продолжает добавлять параметр 'a' до тех пор, пока браузер не завершит работу

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(); } 

Посмотреть:

   

Я добавил дополнительные ограничения для IISExpress applicationhost.config и настройки web.config maxQueryStringLength="32768" .

также добавлено в конфигурацию

    

который совсем не помог, наконец решил использовать скрипач для удаления реферирования из заголовка.

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

Что было красиво.

В IE9 я получил

 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 4043 
  • Мета-элемент IE11 Перерывы SVG
  • Internet Explorer 10 - как применить оттенки серого фильтра?
  • Поддержка VBScript в Internet Explorer 11
  • Доступ к XMLHttpRequest запрещен с помощью AngularJS для любой версии IE ниже 10
  • Давайте будем гением компьютера.