Http.sys параметры реестра для Windows

В этой статье описаны параметры реестра Http.sys для Windows.

Исходная версия продукта: Windows 8, Windows Server 2012, 2008 R2, 2008
Исходный номер базы знаний: 820129

Сводка

В Windows Server 2008 и более поздних версиях Http.sys является драйвером режима ядра, который обрабатывает http-запросы. Несколько значений реестра можно настроить в соответствии с определенными требованиями. Таблица в разделе Разделы реестра содержит следующие сведения об этих значениях реестра:

  • Имена разделов реестра
  • Значения по умолчанию
  • Допустимые диапазоны значений
  • Функции раздела реестра
  • Коды ПРЕДУПРЕЖДЕНИЯ (если применимо)

Примечание.

Сведения о потенциальных рисках при создании и настройке значений реестра с помощью параметров, отличных от параметров по умолчанию, см. в разделе Коды предупреждений .

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

Разделы реестра

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.

В следующем разделе реестра можно создать следующие значения реестра DWORD:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Раздел реестра Значение по умолчанию Допустимый диапазон значений Функция раздела реестра Код предупреждения
AllowRestrictedChars 0 Boolean Если нет нуля, Http.sys принимает шестнадцатеричные символы в URL-адресах запроса, которые декодируются в диапазоны U+0000 - U+001F и U+007F - U+009F. 0
EnableAggressiveMemoryUsage 0 0
1
Предварительное выделение памяти не погашенной памяти пула. По умолчанию служба HTTP перестает принимать подключения, если доступно менее 20 мб памяти не погашенного пула. После добавления этого значения в реестр служба HTTP перестает принимать подключения, если доступно менее 8 МБ памяти не погашенного пула. Установка этого значения реестра может уменьшить количество Connections_refused и 503 ошибок в файле Httperr.log . 0
EnableNonUTF8 1 Логический Если значение равно нулю, Http.sys принимает только URL-адреса в кодировке UTF-8. Если нет нуля, Http.sys также принимает URL-адреса в кодировке ANSI или DBCS в запросах. 0
FavorUTF8 1 Логический Если нет нуля, Http.sys всегда пытается сначала декодировать URL-адрес как UTF-8; Если это преобразование завершается ошибкой и EnableNonUTF8 ненулевое, Http.sys пытается декодировать его как ANSI или DBCS. Если значение равно нулю (и EnableNonUTF8 является ненулевым), Http.sys пытается декодировать его как ANSI или DBCS; если это не удалось, то выполняется преобразование UTF-8. 0
MaxBytesPerSend 65536 1–0xFFFFF (байт) Переопределяет размер окна TCP, используемый Http.sys. Более высокое значение может обеспечить более высокую скорость скачивания в сетевых средах с высокой пропускной способностью и высокой задержкой. 0
MaxConnections MAX_ULONG 1024 (1 кб) — 2031616 (2 МБ) подключений Переопределяет вычисление MaxConnections в драйвере. Это в первую очередь функция памяти. 1
MaxEndpoints 0 0 - 1024 Максимальное число разрешенных объектов текущей конечной точки. Значение по умолчанию , равное нулю, означает, что максимальное значение вычисляется из доступной памяти. 1
MaxFieldLength 16384 64 - 65534 (64 КБ - 2) байт Задает верхний предел для каждого заголовка. См. раздел MaxRequestBytes. Это ограничение преобразуется примерно в 32 кб символов для URL-адреса. 1
MaxRequestBytes 16384 256 - 16777216 (16 МБ) байт Определяет верхний предел общего размера строки запроса и заголовков.
Значение по умолчанию — 16 КБ. Если это значение меньше , MaxFieldLength значение MaxFieldLengthкорректируется.
1
PercentUAllowed 1 Логический Если нет нуля, Http.sys принимает нотацию uNNNN % в URL-адресах запроса. 0
UrlSegmentMaxCount 255 0 - 16 383 сегмента Максимальное число сегментов URL-пути. Если значение равно нулю, число ограничивается максимальным значением ULONG. 1
UriEnableCache 1 Логический Если нет нуля, включено Http.sys кэш ответов и фрагментов. 0
UriMaxUriBytes 262144 (байты) 4096 (4 КБ) — 16777216 (16 МБ) байт Любой ответ, превышающий это значение, не кэшируется в кэше ответов ядра. 1
3
UriScavengerPeriod 120 (секунды) 10–0xFFFFFFFF секунд Определяет частоту очистки кэша. Все ответы или фрагменты, к которым не был получен доступ в секундах UriScavengerPeriod , сбрасываются. 1
2
UrlSegmentMaxLength 260 0 - 32 766 символов Максимальное число символов в сегменте URL-пути (область между косыми чертами в URL-адресе). Если значение равно нулю, это длина, ограниченная максимальным значением ULONG. 1
DisableServerHeader 0 0-2 Этот ключ определяет поведение http.sys при добавлении заголовка HTTP-ответа Server для ответов, отправляемых клиентам. Значение 0, которое является значением по умолчанию, будет использовать значение заголовка, которое приложение предоставляет для http.sys, или добавит значение Microsoft-HTTPAPI/2.0 по умолчанию в заголовок ответа. Значение 1 не добавляет заголовок Server для ответов, созданных http.sys (ответы, заканчивающиеся 400, 503 и другими кодами состояния). Значение 2 не позволит http.sys добавить заголовок Server в ответ. Если в ответе присутствует заголовок Server, он не будет удален, если он отсутствует, он не будет добавлен. 0

В службах IIS может наблюдаться низкая производительность, когда приложения API internet server (ISAPI) или приложения CGI, размещенные в IIS, отправляют ответы. При возникновении MaxBufferedSendBytes этой проблемы можно добавить значение DWORD в реестр.

В Windows Server 2008 и более поздних версиях можно также создать следующее значение DWORD в следующем разделе реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters

Раздел реестра Значение по умолчанию Допустимый диапазон значений Функция раздела реестра Код предупреждения
CertChainCacheOnlyUrlRetrieval 1 0
1
По умолчанию указания AIA не следуют во время проверки цепочки, если службы IIS настроены на использование сертификатов клиента. Это поведение по соображениям производительности и безопасности. Например, такое поведение может помочь предотвратить атаки DoS. Однако это поведение также может привести к неожиданному отклонению сертификата, когда требуется получение AIA. Чтобы переопределить это поведение, можно задать для параметра CertChainCacheOnlyUrlRetrieval DWORD значение 0 (ноль) в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters разделе реестра. Неприменимо

Коды предупреждений

  • 0: нет рисков.
  • 1. Изменение этого раздела реестра считается опасным. Этот ключ заставляет Http.sys использовать больше памяти и может повысить уязвимость к вредоносным атакам.
  • 2. Низкое значение может привести к более частой очистке кэша. Это может повлиять на производительность.
  • 3. Низкое значение может повлиять на производительность статического содержимого.

Изменения, внесенные в реестр, не вступают в силу до перезапуска службы HTTP. Кроме того, может потребоваться перезапустить все связанные службы IIS.

Чтобы перезапустить службу HTTP, введите и все связанные службы IIS, выполните следующие действия.

  1. Нажмите кнопку Пуск, выберите Выполнить, введите Cmd и нажмите кнопку ОК.

  2. В командной строке введите net stop http, а затем нажмите Ввод.

  3. В командной строке введите net start http, а затем нажмите Ввод.

  4. В командной строке введите net stop iisadmin /y, а затем нажмите Ввод.

    Примечание.

    Все службы IIS, зависящие от службы iis Администратор, также будут остановлены. Обратите внимание на службы IIS, которые останавливаются при остановке службы iis Администратор Service. На следующем шаге вы перезапустите каждую службу.

  5. Перезапустите службы IIS, остановленные на шаге 4. Для этого введите net start servicename в командной строке и нажмите клавишу ВВОД. В команде servicename — это имя службы, которую требуется перезапустить. Например, чтобы перезапустить службу Веб-публикации, введите net start World Wide Web Publishing Serviceи нажмите клавишу ВВОД.