Какая может быть максимальная длина URL?
Однажды, при разработке одного из проектов, я столкнулся с тем, что требовалась передача большого количества данных из формы методом GET, то есть через адресную строку. У меня под браузером Firefox все работало как надо, а вот у манагеров, сидящих на Internet Explorer, выдавалась ошибка, что запрошенная страница не может быть отображена. Как оказалось, проблема была в том, что получался слишком длинный адрес URL, и ограничения браузера не позволяют его открыть. Причем у Firefox по всей видимости, этот лимит выше, чем у Internet Explorer. Это натолкнуло меня на мысль протестировать различные браузеры на предмет максимально допустимой длины URL, и вот что у меня получилось. Для опытов был написан коротенький скрипт:Code (PHP) : Убрать нумерацию
- if ($_GET['long']) {
- echo '<script>document.write(document.location.href.length);</script>';
- }
- else {
- $long=1;
- for ($i=0; $i<23; $i++) {
- $long=ceil(2*$long);
- echo '<a href="test.php?long='.$long;
- echo '#chk='.str_repeat('x',$long).'_end!">'.$long.'</a><br>';
- }
- }
LimitRequestLine "65535" must not exceed the precompiled maximum of 8190
То есть для изменения порогового значения надо перекомпилировать сервер с нужными значениями, а это я сделать не могу, тем более на хостинговом сервере. Пропатчить все проверки в локальной версии сервера тоже не удалось, ограничение все равно оставалось. Поэтому пришлось извернуться через анкор и JavaScript.
Теперь переходим к участникам соревнований. Это Firefox 3.6.24, Firefox 8.0.1, Internet Explorer 8.0, Opera 11.52, Safari 5.1, Chromium 15.0 и Google Chrome 15.0. Сам процесс заключался в том, что я просто открывал по очереди ссылки со страницы в разных браузерах. Под длиной URL подразумевается длина строки от "http://" и до окончания анкора. Результаты тестирования:
- Firefox 3.6.24 и Firefox 8.0.1 открыли все ссылки, но после тестового значения 8388608 анкор в адресной строке браузера перестал отображаться.
- Internet Explorer 8.0 повел себя совсем неадекватно. При открытии ссылок они принудительно усекались до длины 4121 символ и отображались в адресной строке браузера, соответственно, так же. Более короткие ссылки открылись без проблем.
- Opera 11.52 открыла все ссылки без проблем, при отображении даже самых длинных анкоров также никаких замечаний нет.
- Safari 5.1 открыл все ссылки до тестового значения 8388608, а на нем вылетел с фатальной ошибкой.
- Chromium 15.0 и Google Chrome 15.0 с трудом отрисовали даже исходную страницу, периодически вываливая вместо нее свое "Опаньки...". Проблемы с отображением URL в адресной строке браузера начались с тестового значения 32768. Ссылки же удалось открыть лишь до 1048576, дальше появлялось неизменное "Опаньки...".
Просмотров: 29261 | Комментариев: 10
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Андрей
(12.03.2015 в 10:31):
Спасибо за информацию. Наткнулся на проблему с некоторыми сайтами по работе с онлайн-картами при построении маршрутов, где в адресную строку добавляются точки. А можно как-то актуализировать инормацию? А то уже и браузеры новые появились и версии новые и разделение на x32, x64 для IE.
Спамбот
(10.02.2015 в 16:41):
Роман, ManHunter, хорошо пообщались)
Анатолий
(24.01.2015 в 19:39):
Полезно, спасибо!
Денис
(18.02.2014 в 00:50):
ManHunter, спасибо за ответ Роману. Повеселил. Поддерживаю. А Рома, видать, тексты не осиливает (врожденные ограничения на длину впитываемой строки)
Полезно знать. Спасибо.
Полезно знать. Спасибо.
myr4ik07
(03.02.2013 в 14:05):
Не хотите добавить кнопку "шаринга" в twitter?!
ManHunter
(12.07.2012 в 08:07):
Словоблудие - это твой никчемный и нахуй никому не нужный каммент. А у меня исследовательская статья, на основании которой получен результат. Так что лучше молчи, если ничего умного сказать не можешь.
Роман
(12.07.2012 в 07:26):
Почему просто цифру не написать? Развел словоблудие
ManHunter
(26.11.2011 в 17:29):
Я встречал уже немало сайтов, которые передают данные через анкоры + ajax/post. Конечно, не в таких промышленных объемах, но способ вполне имеет место быть, и он позволяет легко обойти ограничения сервера.
user
(26.11.2011 в 01:57):
Opera порадовала... Впрочем при ограничениях сервера фишка становится бесполезной ((
liz
(24.11.2011 в 14:19):
Пасиб!
Добавить комментарий
Заполните форму для добавления комментария