Какова максимально возможная длина строки запроса?

Вам не нужно кодировать POST-переменные URL. Однако, если вы взаимодействуете с базой данных, вы захотите убедиться, что ваши переменные защищены от атаки на инъекции.

Что вы будете иметь, но, как сказал Вивин, если это форма, то лучший способ сделать это через .serialize().

Я использую это LOT лично для всех представлений моей формы (сделано через .ajax()).

499
задан mavis 5 February 2014 в 05:49
поделиться

2 ответа

RFC 2616 (протокол передачи гипертекста - HTTP / 1.1) утверждает, что длина строки запроса не ограничена (раздел 3.2.1). RFC 3986 также заявляет, что ограничения нет, но указывает, что имя хоста ограничено 255 символами из-за ограничений DNS (раздел 2.3.3).

Хотя в спецификациях не указана максимальная длина, практические ограничения налагаются веб-браузером и серверным программным обеспечением. Основываясь на исследовании, найденном на Boutell.com :

  • Microsoft Internet Explorer (браузер)
    Microsoft заявляет, что максимальная длина URL-адреса в Internet Explorer составляет 2083 символа, но не более 2048 символов. в части пути URL. Попытки использовать URL-адреса длиннее указанного приводили к появлению четкого сообщения об ошибке в Internet Explorer.

  • Microsoft Edge (браузер).
    Ограничение составляет около 81578 символов. См. Ограничение длины URL-адреса Microsoft Edge

  • Chrome
    Останавливает отображение URL-адреса после 64 тыс. Символов, но может обслуживать более 100 тыс. Символов. Дальнейшее тестирование не проводилось.

  • Firefox (Browser)
    После 65 536 символов строка адреса больше не отображает URL-адрес в Windows Firefox 1.5.x. Однако более длинные URL будут работать. После 100 000 символов дальнейшее тестирование не проводилось.

  • Safari (Browser)
    Будет работать как минимум 80 000 символов. После этого тестирование не проводилось.

  • Opera (Browser)
    По крайней мере, будет работать 190 000 символов. Прекращено тестирование после 190 000 символов. Opera 9 для Windows продолжала отображать полностью редактируемые, См. Ограничение длины URL-адреса Microsoft Edge

  • Chrome
    Останавливает отображение URL-адреса после 64 тыс. Символов, но может обслуживать более 100 тыс. Символов. Дальнейшее тестирование не проводилось.

  • Firefox (Browser)
    После 65 536 символов строка адреса больше не отображает URL-адрес в Windows Firefox 1.5.x. Однако более длинные URL будут работать. После 100 000 символов дальнейшее тестирование не проводилось.

  • Safari (Browser)
    Будет работать как минимум 80 000 символов. После этого тестирование не проводилось.

  • Opera (Browser)
    По крайней мере, будет работать 190 000 символов. Прекращено тестирование после 190 000 символов. Opera 9 для Windows продолжала отображать полностью редактируемые, См. Ограничение длины URL-адреса Microsoft Edge

  • Chrome
    Останавливает отображение URL-адреса после 64 тыс. Символов, но может обслуживать более 100 тыс. Символов. Дальнейшее тестирование не проводилось.

  • Firefox (Browser)
    После 65 536 символов строка адреса больше не отображает URL-адрес в Windows Firefox 1.5.x. Однако более длинные URL будут работать. После 100 000 символов дальнейшее тестирование не проводилось.

  • Safari (Browser)
    Будет работать как минимум 80 000 символов. После этого тестирование не проводилось.

  • Opera (Browser)
    По крайней мере, будет работать 190 000 символов. Прекращено тестирование после 190 000 символов. Opera 9 для Windows продолжала отображать полностью редактируемые, Дальнейшее тестирование не проводилось.

  • Firefox (Browser)
    После 65 536 символов строка адреса больше не отображает URL-адрес в Windows Firefox 1.5.x. Однако более длинные URL будут работать. После 100 000 символов дальнейшее тестирование не проводилось.

  • Safari (Browser)
    Будет работать как минимум 80 000 символов. После этого тестирование не проводилось.

  • Opera (Browser)
    По крайней мере, будет работать 190 000 символов. Прекращено тестирование после 190 000 символов. Opera 9 для Windows продолжала отображать полностью редактируемые, Дальнейшее тестирование не проводилось.

  • Firefox (Browser)
    После 65 536 символов строка адреса больше не отображает URL-адрес в Windows Firefox 1.5.x. Однако более длинные URL будут работать. После 100 000 символов дальнейшее тестирование не проводилось.

  • Safari (Browser)
    Будет работать как минимум 80 000 символов. После этого тестирование не проводилось.

  • Opera (Browser)
    По крайней мере, будет работать 190 000 символов. Прекращено тестирование после 190 000 символов. Opera 9 для Windows продолжала отображать полностью редактируемые,

  • Opera (Browser)
    Будет работать не менее 190 000 символов. Прекращено тестирование после 190 000 символов. Opera 9 для Windows продолжала отображать полностью редактируемые,

  • Opera (Browser)
    Будет работать не менее 190 000 символов. Прекращено тестирование после 190 000 символов. Opera 9 для Windows продолжала отображать полностью редактируемые, копируемый и вставляемый URL-адрес в строке адреса даже в 190 000 символов.

  • Apache (сервер)
    Первые попытки измерить максимальную длину URL-адреса в веб-браузерах натолкнулись на ограничение длины URL-адреса сервера, равное приблизительно 4000 символов, после чего Apache создает ошибка «413 Entity Too Large». Была использована текущая современная версия Apache, найденная в Red Hat Enterprise Linux 4. В официальной документации Apache упоминается ограничение в 8 192 байта для отдельного поля в запросе.

  • Информационный сервер Microsoft Internet (Сервер)
    Ограничение по умолчанию составляет 16 384 символа (да, веб-сервер Microsoft принимает более длинные URL-адреса, чем веб-сайт Microsoft). браузер). Это настраивается.

  • Perl HTTP :: Daemon (Server)
    Работает до 8000 байт. Те, кто строит серверы веб-приложений с помощью Perl HTTP :: Модуль Daemon столкнется с ограничением в 16 384 байта на общий размер всех заголовков HTTP-запросов. Это не относится к данным форм POST-метода, загрузкам файлов и т. Д., Но включает URL-адрес. На практике это привело к ошибке 413, когда URL-адрес был значительно длиннее, чем 8000 символов. Это ограничение можно легко снять. Найдите все вхождения 16x1024 в Daemon.pm и замените их на большее значение. Конечно, это увеличивает вашу подверженность атакам типа «отказ в обслуживании».

946
ответ дан 22 November 2019 в 22:29
поделиться

Различные веб-стеки поддерживают разные длины http-запросов. По своему опыту я знаю, что ранние стеки Safari поддерживали только 4000 символов и, следовательно, имели трудности с обработкой страниц ASP.net из-за состояния пользователя. Это даже для POST, поэтому вам придется проверить браузер и посмотреть, каков предел стека. Я думаю, что вы можете достичь предела даже в новых браузерах. Я не могу вспомнить, но один из них (я думаю, IE6) имел ограничение в 16 бит, 32 768 или что-то в этом роде.

1
ответ дан 22 November 2019 в 22:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: