Проголосуйте за упоминание Metabase.XML, и я перечислил различные способы изменить ограничение размера загружаемого файла, потому что это может быть полезно.
Durai Amuthan.H
Ввод следующей команды в командной строке помогает увеличить предельный размер загружаемого файла. "Cscript C: \ inetpub \ adminscripts \ adsutil.vbs set w3svc / ASPMaxRequestEntityAllowed 10484880" (в байтах) ссылка: serverintellect.com/support/iis/uploaddownload-size-limits -iis6
Durai Amuthan.H
или найдите файл metabase.xml в папке C: \ windows \ sytem32 \ inetserv \ и отредактируйте, но убедитесь, что включен параметр «Включить прямое редактирование метабазы». ссылка
Для текущих (2019 г.) веб-серверов см. Этот ответ .
Дэн Даскалеску
76
Удивительно, как во всех ответах говорится об IIS, как если бы это был единственный имеющий значение веб-сервер. Даже в 2010 году, когда был задан вопрос, Apache занимал от 60% до 70% доли рынка . Тем не мение,
Протокол HTTP не устанавливает ограничения.
Метод POST позволяет отправлять гораздо больше данных, чем метод GET, который ограничен длиной URL. - около 2 КБ.
Максимальный размер тела запроса POST настраивается на HTTP-сервере и обычно составляет от 1 МБ до 2 ГБ.
HTTP-клиент (браузер или другой пользовательский агент) может иметь свои ограничения. Следовательно, максимальный размер тела запроса POST составляет min(serverMaximumSize, clientMaximumSize).
Вот размеры тела POST для некоторых наиболее популярных HTTP-серверов:
Из ответов, в которых упоминается веб-сервер, в двух упоминается IIS, а в одном упоминается Apache. Во всяком случае, я отредактировал свой ответ на указатель в сторону вашего, который является более полным и актуальным.
Дэвид Нил
3
Спасибо, @DavidNeale! Для этого должен быть значок :) Я постараюсь обновлять этот ответ. Просто добавил максимум для nginx.
Дэн Даскалеску
Об этом: «данных больше, чем у метода GET, который ограничен длиной URL - около 2 КБ». А что насчет заголовков? Согласно этому сообщению , заголовки позволяют разместить около 8-16 КБ.
Hans
27
В соответствии с самим протоколом HTTP ограничений нет, но у реализаций будет практический верхний предел. Я отправил данные, превышающие 4 ГБ, с помощью POST в Apache, но на некоторых серверах в то время было ограничение в 4 ГБ.
Обратите внимание, что нет ограничений на количество элементов FORM, которые вы можете передать через POST, но только на совокупный размер всех пар имя / значение. В то время как GET ограничен 1024 символами, данные POST ограничены 2 МБ в IIS 4.0 и 128 КБ в IIS 5.0. Каждое имя / значение ограничено 1024 символами в соответствии со спецификацией SGML. Конечно, это не относится к файлам, загруженным с помощью enctype = 'multipart / form-data' ... У меня не было проблем с загрузкой файлов размером 90–100 МБ с использованием IIS 5.0, кроме необходимости увеличивать значение server.scriptTimeout а также мое терпение!
Хорошая редакция @Matt - показывает важность вырезания основных фактов, а не
слепых
1
В приложении, которое я разрабатывал, я столкнулся с тем, что, казалось, было ограничением POST около 2 КБ. Оказалось, что я случайно кодировал параметры в URL вместо того, чтобы передавать их в теле. Поэтому, если вы столкнетесь с проблемой, определенно существует очень маленький предел размера данных POST, которые вы можете отправлять в кодировке в URL-адрес.
HTTP может не иметь верхнего предела, но у веб-серверов он может быть. В ASP.NET есть ограничение по умолчанию, равное 4 МБ, но вы (разработчик / веб-мастер) можете изменить это значение на большее или меньшее.
Ответы:
РЕДАКТИРОВАТЬ (2019) Этот ответ теперь довольно избыточен, но есть еще один ответ с более актуальной информацией.
Это скорее зависит от веб-сервера и веб-браузера:
Internet Explorer Все версии 2 ГБ-1
Mozilla Firefox Все версии 2 ГБ-1
IIS 1-5 2 ГБ-1
IIS 6 4 ГБ-1
Хотя IIS по умолчанию поддерживает только 200 КБ, в метабазу необходимо внести изменения, чтобы увеличить это значение.
http://www.motobit.com/help/scptutl/pa98.htm
Сам метод POST не имеет ограничений на размер данных.
источник
Удивительно, как во всех ответах говорится об IIS, как если бы это был единственный имеющий значение веб-сервер. Даже в 2010 году, когда был задан вопрос, Apache занимал от 60% до 70% доли рынка . Тем не мение,
1 МБ до 2 ГБ.
min(serverMaximumSize, clientMaximumSize)
.Вот размеры тела POST для некоторых наиболее популярных HTTP-серверов:
источник
В соответствии с самим протоколом HTTP ограничений нет, но у реализаций будет практический верхний предел. Я отправил данные, превышающие 4 ГБ, с помощью POST в Apache, но на некоторых серверах в то время было ограничение в 4 ГБ.
источник
LimitRequestBody
директиве.POST позволяет отправлять данные произвольной длины на сервер, но есть ограничения, основанные на тайм-аутах / пропускной способности и т. Д.
Я думаю, что в принципе безопаснее предположить, что отправлять много данных - это не нормально.
источник
Согласно этой (теперь удаленной) статье, разные веб-серверы IIS могут обрабатывать разные объемы данных в «заголовке»;
http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html;источник
В приложении, которое я разрабатывал, я столкнулся с тем, что, казалось, было ограничением POST около 2 КБ. Оказалось, что я случайно кодировал параметры в URL вместо того, чтобы передавать их в теле. Поэтому, если вы столкнетесь с проблемой, определенно существует очень маленький предел размера данных POST, которые вы можете отправлять в кодировке в URL-адрес.
источник
HTTP может не иметь верхнего предела, но у веб-серверов он может быть. В ASP.NET есть ограничение по умолчанию, равное 4 МБ, но вы (разработчик / веб-мастер) можете изменить это значение на большее или меньшее.
источник