Лучший способ задать вопрос, который я когда-либо видел.
Андрес Моралес
Ответы:
60
Это зависит от способа отправки формы.
При использовании GET существует общепринятый лимит около 1-2 килобайт, в зависимости от ограничений браузера и сервера.
При использовании POST в браузере нет технических ограничений, но обычно они устанавливаются на стороне сервера - см., Например, Apache LimitRequestBody, PHP post_max_sizeи так далее.
Остерегайтесь проблем, указанных ниже @naugtur для полей ввода текста - по крайней мере, для тех, которые существуют технические ограничения, налагаемые различными браузерами.
Оливер
Я только что провел несколько тестов в трех современных браузерах (IE9, FF 10 ESR, Chrome 24), и все они без проблем отправили скрытые входные значения размером 100 КБ. Так что проблемы с вводом текста, похоже, здесь не применимы.
Оливер
как насчет textareaс?
Франсиско Корралес Моралес,
@FranciscoCorralesMorales, неважно, какого типа поле ввода - важен конечный результат, сумма всех отправляемых вами данных
Пекка
Я обнаружил, что Safari усек скрытый ввод. Использование текстового поля решило проблему.
Брендон Мьюир
29
Предупреждение! У меня возникли проблемы, <input type="text">когда текст длиннее 65535 (максимальный размер подписанного int)
Кажется, что вставка текста вызывает какое-то странное переполнение содержимого. Обнаружен в webkit.
[редактировать]
Размер GET-запроса точно не ограничен, как писал Пекка. Толькоaddress?params в Internet Explorer существует ограничение в 2083 байта для всей строки запроса GET.
В других браузерах ограничений практически нет, например, FireFox отправляет запросы GET размером более 100 КБ. Очевидно, сервер должен их разрешить.
Это не описано в документации, поэтому нужно протестировать его, чтобы узнать ограничения для других браузеров. IE: http://support.microsoft.com/kb/208427
+1 Я создал этот jsFiddle, чтобы проверить, что происходит, когда вы устанавливаете входное значение в очень длинную строку: jsfiddle.net/3TVPL/6 Я использовал строку длиной 65537 символов. В моем тестировании Crome 24.0.1312 и Safari 5.1.7 для Windows показывают поля ввода как пустые после установки значения в эту строку. Chrome показывает правильное непустое значение, если я уменьшу строку до 65536 символов. В других браузерах (Firefox 17, IE8, IE9, IE10, Opera 12.12) проблем не возникало даже со строками намного длиннее (я поднял строку примерно до 1,2 Мб)
beluga
@beluga отличная работа. есть мысли по производительности? На моей слабой машине ждать пришлось долго. Я думаю, поэтому webkit этого не отображает.
naugtur
Может быть, хорошая мысль. В то время я не проводил никаких тестов производительности. У меня на работе довольно мощная машина, и я не заметил никаких задержек ни в одном из браузеров.
beluga
Это сделало мой FF непригодным для использования примерно на 5 минут. В любом случае
помещать
Мобильные браузеры и прокси также могут обрезать скрытые поля
Ответы:
Это зависит от способа отправки формы.
При использовании GET существует общепринятый лимит около 1-2 килобайт, в зависимости от ограничений браузера и сервера.
При использовании POST в браузере нет технических ограничений, но обычно они устанавливаются на стороне сервера - см., Например, Apache
LimitRequestBody
, PHPpost_max_size
и так далее.источник
textarea
с?Предупреждение! У меня возникли проблемы,
<input type="text">
когда текст длиннее 65535 (максимальный размер подписанного int)Кажется, что вставка текста вызывает какое-то странное переполнение содержимого. Обнаружен в webkit.
[редактировать]
Размер GET-запроса точно не ограничен, как писал Пекка. Только
address?params
в Internet Explorer существует ограничение в 2083 байта для всей строки запроса GET. В других браузерах ограничений практически нет, например, FireFox отправляет запросы GET размером более 100 КБ. Очевидно, сервер должен их разрешить.Это не описано в документации, поэтому нужно протестировать его, чтобы узнать ограничения для других браузеров. IE: http://support.microsoft.com/kb/208427
источник