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

Мы использовали AccuRev в течение нескольких лет теперь. Это - серьезное улучшение по сравнению с нашим последним инструментом (Бритва) и в то время как я рекомендовал бы его для других - это действительно имеет несколько недостатков.

Преимущества:

  • интерфейс на основе потоков довольно интуитивен. Я делаю снимки каждой второй неделей и имею много продолжающихся потоков разработки, отклоняющихся снимок.
  • Движущиеся изменения между потоком действительно легки, просто выберите изменение, отправьте его в "палитру изменения" и выберите целевой поток. Это ведет Вас через все файлы, которые должны быть объединены.
  • утилиты командной строки являются большими. Нам удалось написать сценарий большей части нашего поколения выпуска вокруг этого.
  • Интеграция для Visual Studio, Bugzilla, и т.д.

Недостатки:

  • Как monjardin указанный, клиентский GUI может быть медленным. Я использую версию для Windows для всей своей истории/потока, ищущей, так как это намного быстрее, чем X11 один. Конечно, GUI записал в Java, таким образом, производительность, очевидно, не была их первым беспокойством.
  • Это начинает становиться медленным для действительно больших баз данных (я обсуждаю 300 000 LOC), хотя они, по-видимому, обратились к нему в сегодняшнем выпуске 4,7.

Мы решили пойти с более дешевой лицензией и не получить функцию пакетов изменения (я не вижу, что они работают, что хорошо так или иначе, поскольку вся идея способствовать отдельным изменениям бросает вызов непрерывной интеграции). До сих пор это не причинило нам боль.

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

кроме того, я понимаю, что инженеры в Trolltech (производители QT) недавно переключились на мерзавца. Я интересовался бы проверкой этого также.

70
задан Community 23 May 2017 в 11:53
поделиться

2 ответа

Yes, but the limits are configurable and dependent on platform. For example, Tomcat has a default limit of 8K. I believe that IIS 6, not sure about IIS 7, has a limit of 16K. I ran into this when using integrated windows authentication for several web sites. Turns out my security token was too large when encoded into the header. Fortunately, these are configurable. Registry settings for IIS can be found at http://support.microsoft.com/kb/820129. I believe the key settings to change are MaxFieldLength (per header size) and MaxRequestBytes (total size of request).

50
ответ дан 24 November 2019 в 13:25
поделиться

Для Apache я нашел эту статью Server Limits for 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 управляет этим:

Самая длинная строка заголовка запроса также должна быть не больше, чем размер одного буфера, иначе клиент получит ошибку «Плохой запрос» (400).

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

14
ответ дан 24 November 2019 в 13:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: