параметры реестра 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
Раздел реестра | Default value | Допустимый диапазон значений | Функция раздела реестра | КОД ПРЕДУПРЕЖДЕНИЯ |
---|---|---|---|---|
AllowRestrictedChars | 0 | Логический | Если ненулевое значение, Http.sys принимает шестнадцатеричные символы в URL-адресах запросов, которые декодируются в диапазоны U+0000 – U+0001F и 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 (64k - 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 секунды | Определяет частоту кэша scavenger. Любой ответ или фрагмент, к которому не был получен доступ в течение нескольких секунд, равных UriScavengerPeriod очистке. |
1 2 |
UrlSegmentMaxLength | 260 | 0 - 32 766 chars | Максимальное число символов в сегменте пути URL-адреса (область между косой чертой в URL-адресе). Если значение равно нулю, это длина, ограниченная максимальным значением объекта ULONG . |
1 |
DisableServerHeader | 0 | 0 - 2 | Этот ключ определяет поведение http.sys относительно добавления сервера заголовка http-ответа для ответов, которые он отправляет клиентам. Значение 0, являющееся значением по умолчанию, будет использовать значение заголовка, которое приложение предоставляет для http.sys, или добавит значение Microsoft-HTTPAPI/2.0 по умолчанию в заголовок ответа. Значение 1 не добавит заголовок сервера для ответов, созданных http.sys (ответы, заканчивающиеся 400, 503 и другими кодами состояния). Значение 2 не позволит http.sys добавить к ответу заголовок сервера. Если в ответе присутствует заголовок сервера, он не будет удален, если он отсутствует, он не будет добавлен. |
0 |
Производительность в службы IIS (IIS) может снизиться, если приложения API Internet Server (ISAPI) или приложения Common Gateway Interface (CGI), размещенные в ответах iis. При возникновении этой проблемы можно добавить MaxBufferedSendBytes
значение DWORD в реестр.
В Windows Server 2008 и более поздних версиях можно также создать следующее значение DWORD в следующем разделе реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters
Раздел реестра | Default value | Допустимый диапазон значений | Функция раздела реестра | КОД ПРЕДУПРЕЖДЕНИЯ |
---|---|---|---|---|
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, выполните следующие действия.
Нажмите кнопку "Пуск", выберите "Запустить", введите cmd и нажмите кнопку "ОК".
В командной строке введите
net stop http
, а затем нажмите Ввод.В командной строке введите
net start http
, а затем нажмите Ввод.В командной строке введите
net stop iisadmin /y
, а затем нажмите Ввод.Примечание.
Все службы IIS, зависящие от службы администрирования IIS, также будут остановлены. Обратите внимание, что службы IIS остановлены при остановке службы администрирования IIS. Вы перезапустите каждую службу на следующем шаге.
Перезапустите службы IIS, которые были остановлены на шаге 4. Для этого введите
net start servicename
в командной строке и нажмите клавишу ВВОД. В команде имя службы — это имя службы, которую требуется перезапустить. Например, чтобы перезапустить службу веб-публикации World Wide, введитеnet start World Wide Web Publishing Service
и нажмите клавишу ВВОД.