Xpoint
   [напомнить пароль]

Ограничение на длину адреса (GET)

Метки: [без меток]
2006-05-03 16:48:05 [обр] ola(0/1)[досье]
Существуют ли ограничения на длину адреса запрашиваемого документа методом GET?
Интересуют органичения со стороны браузеров (IE 5.5, IE 6, FF, Opera) и сервера (apache 1.31).
спустя 30 минут [обр] Алексей В. Иванов(9/2861)[досье]
Существуют. Они разные в зависимости от OS и пр. параметров, AFAIK.
спустя 1 час 55 минут [обр] Даниэль Алиевский(9/125)[досье]
По порядку величины, насколько я помню, обычно 1-2 тысячи символов.
спустя 1 час 15 минут [обр] Владимир Палант(49/4445)[досье]
Что нам говорит эксперимент? (c)
Проверить ведь не сложно. Google вот, к примеру, на запросы более 2000 символов говорит "Bad Request". А вот браузер запросы как правило не ограничивает, по крайней мере Firefox 1.5 передал 24 тысячи символов без вопросов.
спустя 8 часов [обр] Закиров Руслан(0/341)[досье]
спустя 7 часов [обр] Даниэль Алиевский(9/125)[досье]

Впрочем, эксперимент говорит, что у броузера тоже есть ограничения - по крайней мере у MSIE.
Сделал файл d:\tmp\1.htm:

<script>
document.writeln(location.search.length+"<br>"+location.href);
</script>

Обращаюсь к нему:
file:///D:/TMP/1.htm?0123456789... (всего 4000 символов)
В FireFox все честно: длина search равна 4001, все символы показаны. В MSIE 6 search.length=2027, часть последних символов пропала.

спустя 2 часа 4 минуты [обр] ola(0/1)[досье]
Эксперимент (он же метод тыка :) показал, что в IE 6 ограничение 2047 символов. Причем, если достигнут этот лимит, то IE просто не дает вводить символы в строке адреса и не отправляет форму, если запрос через форму.
Кстати, более верно будет location.href.length, а не location.search.length.
Закиров Руслан[досье], спасибо, не знала такой директивы.
спустя 6 дней [обр] Сергей Пантелеев(0/15)[досье]
Еще имеет смысл задуматься об ограничениях со стороны прокси-серверов. Года три назад на одном пересыщенном куками сайте было замечено, что примерно в 30% запросов хедер `Cookie` приходил обрезанным до 512 байт. Поскольку это было далеко не везде, не придумали ничего кроме как списать это дело на прокси... Возможно, со строкой запроса тоже будут проблемы.
спустя 23 часа [обр] 30-ый(0/584)[досье]
Я помню для обхода подобных ограничений на уже готовом проекте писал специальный фильтр, который длинные немецкие слова, например "artikeldateizuordnungsnummer", в URL заменял на что-то типа "az". К фильтру прилагался словарик по которому приходящие запросы переводились назад прежде чем попасть на обработку к приложению.
спустя 49 минут [обр] Алексей В. Иванов(9/2861)[досье]
"artikeldateizuordnungsnummer", в URL заменял на что-то типа "az"
А "az" на что заменяли? ;)
спустя 56 минут [обр] 30-ый(0/584)[досье]

Я просто сам следил за тем, чтобы конвертация была обратимой.

Если все возможные варианты заранее не известны, то можно исходить из предположения, что несловарные слова встречаются редко и конвертить их по тому же словарю в обратную сторону.

Powered by POEM™ Engine Copyright © 2002-2005