Каков предельный размер запроса на публикацию?


Извините, если это дубликат, я бы подумал, что так и будет, но ничего не смог найти.

У меня есть приложение flex, которое я отправляю данные обратно на сервер php/mysql через IE. У меня пока не возникло никаких проблем, но знание этого заранее может избавить меня от кучи разочарований и работы. Существует ли ограничение по размеру для публикации данных через http?

В этой статье говорится, что нет: http://www.netlobo.com/ie_form_submit.html

В этом обсуждении говорится да: http://bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method

И все это идет туда и обратно, что я могу найти в Интернете. Поэтому пожалуйста, ограничьте ответы лично проверенными/проверенными номерами.

Я хочу отправить обратно строку XML, которая может быть довольно большой (скажем, до 5 Мб).

Если это имеет какое-либо значение: браузер всегда будет IE (этого требует наш продукт), сообщение поступает из и HTTPService в flex, веб-сервер - php, БД - MySQL.

Author: invertedSpear, 2010-03-02

8 answers

Это зависит от конфигурации сервера. Если вы работаете с PHP под Linux или аналогичным, вы можете управлять им с помощью файла конфигурации .htaccess, например:

#set max post size
php_value post_max_size 20M

И, да, я могу лично подтвердить тот факт, что это работает:)

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

 181
Author: inkedmn, 2016-12-04 23:44:06

Часть URL-адреса запроса (GET и POST) может быть ограничена как браузером, так и сервером - обычно безопасный размер составляет 2 КБ, поскольку почти нет браузеров или серверов, которые используют меньший лимит.

Тело запроса (POST) обычно* ограничено сервером на основе размера в байтах, чтобы предотвратить тип DOS-атаки (обратите внимание, что это означает, что экранирование символов может увеличить размер тела в байтах). Наиболее распространенный параметр сервера составляет 10 МБ, хотя все популярные серверы разрешите увеличивать или уменьшать это значение с помощью файла настроек или панели.

*Некоторые исключения существуют для старых браузеров мобильных телефонов или других небольших устройств - в этих случаях это скорее функция места в куче, зарезервированного для этой цели на устройстве, чем что-либо еще.

 67
Author: David, 2010-03-02 16:45:23

Также, в PHP.В INI-файле есть настройка:

max_input_vars

Который в моей версии PHP: 5.4.16 по умолчанию равен 1000.

Из руководства: "Сколько входных переменных может быть принято (ограничение применяется к суперглобальным $_GET, $_POST и $_COOKIE отдельно)"

Ссылка: http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars

 42
Author: Nikolay Ivanov, 2014-01-31 23:55:36

Вы можете публиковать большой объем данных, установив переменную php.ini: max_input_vars Размер этой переменной по умолчанию равен 1000, но если вы хотите отправить большой объем данных, вам необходимо соответствующим образом увеличить размер. Если вы не можете установить размер из ini_set, вам нужно сделать это через htaccess или путем внесения изменений непосредственно в файл php.ini.

max_input_vars  2500
memory_limit    256M
 10
Author: Nilesh Chourasia, 2015-03-10 14:03:55

Как отметил Дэвид, в большинстве случаев я бы выбрал KB.

php_value post_max_size 2KB

Примечание: моя форма проста, всего несколько текстовых полей, а не длинный текст.

 5
Author: ChrisDeDavidMindflowAU, 2013-06-27 09:54:18

Решение о наличии ограничения зависит от http-сервера. Продукт, над которым я работаю, позволяет администратору настраивать ограничение.

 1
Author: ChrisH, 2010-03-02 16:42:43

По умолчанию максимальный размер запроса post составляет 8 мб. Но вы можете изменить его в соответствии с вашими требованиями. Модификацию можно выполнить, открыв файл php.ini (настройка конфигурации php).

Найти

post_max_size=8M  //for me, that was on line:771

Замените 8 в соответствии с вашими требованиями.

 1
Author: Muhammad Ashfaq, 2016-11-16 04:04:30

Одним из лучших решений для этого является то, что вы не используете несколько или более 1000 полей ввода. Вы можете объединить несколько входных данных с любым специальным символом, например. @.

Смотрите это:

<input type='text' name='hs1' id='hs1'>
<input type='text' name='hs2' id='hs2'>
<input type='text' name='hs3' id='hs3'>
<input type='text' name='hs4' id='hs4'>
<input type='text' name='hs5' id='hs5'>

<input type='hidden' name='hd' id='hd'>

Используя любой скрипт (JavaScript или JScript),

document.getElementById("hd").value = document.getElementById("hs1").value+"@"+document.getElementById("hs2").value+"@"+document.getElementById("hs3").value+"@"+document.getElementById("hs4").value+"@"+document.getElementById("hs5").value

С помощью этого вы обойдете проблему max_input_vars. Если вы увеличите max_input_vars в файле php.ini, это нанесет вред серверу, поскольку он использует больше кэш-памяти сервера, и это иногда может привести к сбою сервера.

 -1
Author: harpej, 2016-05-24 20:00:09