Существует ли практический предел длины заголовка HTTP?



У меня есть веб-приложение, которое добавляет контекстную информацию XmlHttpRequest объекты с помощью setRequestHeader API. Я использую имя пользовательского заголовка (например, X-Foo) и JSON структурированные значения. Он не является частью URL QueryString или POST body, потому что это метаинформация о запросе.



существует ли практический предел размера для значения заголовка? Если мой JSON усекается, он становится непростительным. Я очень обеспокоен с ограничениями в Apache 2, Tomcat 6 и IIS 7. Я сделал поиск в Google для ограничение длины заголовка http, но многие результаты кажутся устаревшими. Есть некоторые соответствующие комментарии в насколько большой может быть строка агента пользователя? но не так конкретно, как хотелось бы.



Edit:
Я просто наткнулся на этот аналогичный вопрос-максимум на значения заголовка http?

816   5  

5 ответов:

да, но ограничения настраиваются и зависят от платформы. Например, Tomcat имеет ограничение по умолчанию 8К. Я считаю, что службы IIS 6, не уверен, что службы IIS 7, имеет ограничение в 16к. Я столкнулся с этим при использовании встроенной проверки подлинности Windows для нескольких веб-сайтов. Оказывается, мой маркер безопасности был слишком большим при кодировании в заголовок. К счастью, они настраиваются. Параметры реестра для IIS можно найти по адресу http://support.microsoft.com/kb/820129. Я считаю, что ключевыми настройками для изменения являются MaxFieldLength (размер заголовка) и MaxRequestBytes (общий размер запроса).

хотя каждое программное обеспечение веб-сервера имеет некоторые ограничения, есть разница, есть ли предел для строка HTTP-запроса плюс поля заголовка или для каждого поля заголовка.

вот резюме:

  • Apache 1.3, 2.0, 2.2, 2.3:8190 байт (для каждого поля заголовок)
  • IIS:
    • 4.0:2097152 Байты (для строки запроса плюс поля заголовка)
    • 5.0:131072 байт,16384 байт С пакетом обновления 4 для Windows 2000 (для строки запроса плюс поля заголовка)
    • 6.0:16384 байт (для каждого поля заголовка)
  • Tomcat:
    • 5.5.x/6.0.x:49152 байт (для строки запроса плюс поля заголовка)
    • 7.0.x:8190 байт (для строки запроса плюс поля заголовка)

Итак, чтобы заключить: быть принятым всеми веб-серверами выше, a строка запроса запроса плюс поля заголовка не должны превышать 8190 байт. Это также предел для каждого поля заголовка (фактически еще меньше).

для Apache, я нашел это ограничения сервера для Apache Security статья, в которой перечислены эти директивы:

  # allow up to 100 headers in a request
  LimitRequestFields 100
  # each header may be up to 8190 bytes long
  LimitRequestFieldsize 8190

для Nginx, то large_client_header_buffers директива из HttpCoreModule управляет этим:

самая длинная строка заголовка запроса также должна быть не больше размера одного буфера, иначе клиент получит ошибку "Bad request" (400).

по умолчанию размер буфера равен размер страницы, в зависимости от платформы это или 4K, или 8K

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

Flash Media Server 4.5 имеет очень короткий предел длины заголовка по умолчанию, который может привести к тому, что сервер просто не ответит, особенно в условиях, когда есть умеренная загрузка файлов cookie.

посмотреть: Flash Media Server 4.5 конфигурация и Администрирование: Настройка сервера Настройка Apache HTTP Server: укажите максимальную длину строки заголовка HTTP

в адаптере Flash Media Server.xml-файл,MaxHeaderLineLength элемент определяет размер заголовка HTTP, который может обрабатывать сервер. Значение по умолчанию для MaxHeaderLineLength - это 1024 байта. Некоторые обозреватели отправьте заголовок размером более 1024 байт. В этом случае Apache отправляет назад пустой ответ. Чтобы устранить эту проблему, настройте MaxHeaderLineLength до 8192.

примечание: по умолчанию ограничение размера заголовка Apache HTTP составляет 8 КБ (8190 байт плюс возврат каретки).

положить это здесь в случае, если ограничение размера заголовка на Flash Медиа-сервер кусает кого-то еще.

Comments

    Ничего не найдено.