HTTP POST для IIS и PHP - ограничение пары ключ/значение?

Я пытаюсь отладить проблему в веб-приложении, которое отправляет данные POST в IIS (7.5), который передает их в приложение PHP (5.3.5) (через FastCGI).

Страница имеет динамическую форму, которая позволяет пользователю добавлять новые поля, поэтому количество пар ключ-значение, публикуемых страницей, варьируется (6 новых пар ключ-значение для каждой строки в таблице). Некоторые пользователи совсем сошли с ума и добавили МНОГО данных, что означает, что в некоторых случаях в теле POST содержится более 1000 пар ключ-значение.

Похоже, что IIS, FastCGI или PHP ограничивают количество пар ключ-значение в теле POST. Fiddler говорит мне, что браузер правильно отправляет все 1000+ пар, но если я использую PHP для немедленного отображения каждого ключа в $_POST, список сокращается. Все размещенные значения содержат данные, но даже если бы они этого не сделали, я уверен, что ключи не должны быть удалены.

Поиск в Google этой проблемы не помогает, поэтому, надеюсь, у кого-то есть опыт. Чтобы уточнить:

  1. перепроектирование приложения может быть на столе, но только в крайнем случае
  2. объем данных, отправляемых POST, все еще невелик - весь запрос составляет около 50 КБ.
  3. магическое число, кажется, около 1000 (может быть, 1005, но тестирование - это немного свинья, поэтому я не могу сказать с полной уверенностью)

Любые мысли по этому поводу будут очень признательны!


person tomfumb    schedule 07.06.2012    source источник


Ответы (2)


В конце концов ответ пришел из этой темы

PHP max_input_vars был проблемой

person tomfumb    schedule 09.06.2012

У IIS есть ограничения запросов, найденные в другом сообщении:

Существует ли ограничение на POST через HTTPS для IIS 7?

Похоже, вы делаете динамическую форму. Я предлагаю вам взглянуть на «Форму» в Google Docs и рассмотреть возможность обновления содержимого всей формы по частям на стороне сервера через AJAX. Это потребует большей пропускной способности и стабильности соединения, но это решит ваши ограничения в 1000 или 1005.

Другой подход — контролировать ожидания пользователей и устанавливать верхнюю границу.

person Ken Cheung    schedule 07.06.2012
comment
спасибо, я посмотрю ограничения запросов IIS, чтобы увидеть, есть ли что-нибудь важное. Я думаю, что несколько сообщений, вероятно, как я подойду к этому, если я не могу изменить ограничение - person tomfumb; 07.06.2012