Http.sys configuración del Registro para Windows

En este artículo se describe Http.sys configuración del Registro para Windows.

Versión del producto original:   Windows 8, Windows Server 2012, 2008 R2, 2008
Número KB original:   820129

Resumen

En Windows Server 2008 y versiones posteriores, Http.sys es el controlador de modo kernel que controla las solicitudes del Protocolo de transferencia de hipertexto (HTTP). Se pueden configurar varios valores del Registro de acuerdo con requisitos específicos. La tabla de la sección Claves del Registro contiene la siguiente información sobre estos valores del Registro:

  • Nombres de clave del Registro
  • Valores predeterminados
  • Intervalos de valores válidos
  • Funciones clave del Registro
  • Códigos DE ADVERTENCIA (cuando corresponda)

Nota

Vea la sección Códigos de advertencia para obtener información sobre los posibles riesgos al crear y configurar valores del Registro mediante opciones que no son las opciones predeterminadas.

Este artículo está dirigido a usuarios avanzados y supone el conocimiento del registro y de los riesgos que conlleva el cambio del registro.

Claves del Registro

Importante

Esta sección, método o tarea contiene pasos que le indican cómo modificar el Registro. No obstante, pueden producirse problemas graves si modifica el registro de manera incorrecta. En consecuencia, asegúrese de seguir estos pasos cuidadosamente. Para mayor protección, cree una copia de seguridad del registro antes de modificarlo. Después, puede restaurar el registro si se produce un problema. Para obtener más información sobre cómo hacer una copia de seguridad del Registro y cómo restaurarlo, consulte Cómo realizar una copia de seguridad del Registro y restaurarlo en Windows.

Puede crear los siguientes valores del Registro DWORD en la siguiente clave del Registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Clave del Registro Valor predeterminado Intervalo de valores válido Función clave del Registro Código WARNING
AllowRestrictedChars 0 Boolean Si es distinto de cero, Http.sys acepta caracteres de escape hexadecimal en las direcciones URL de solicitud que descodifican a U+0000- U+001F y U+007F: rangos U+009F. 0
EnableAggressiveMemoryUsage 0 0
1
Preallocar memoria de grupo no con página. De forma predeterminada, el servicio HTTP deja de aceptar conexiones cuando hay disponible menos de 20 megabytes (MB) de memoria de grupo sin página. Después de agregar este valor al Registro, el servicio HTTP deja de aceptar conexiones cuando hay disponible menos de 8 MB de memoria de grupo sin página. Establecer este valor del Registro puede reducir el número de Connections_refused y 503 errores en el archivo Httperr.log . 0
EnableNonUTF8 1 Booleano Si es cero, Http.sys solo acepta direcciones URL con codificación UTF-8. Si es distinto de cero, Http.sys también acepta direcciones URL con codificación ANSI o DBCS en las solicitudes. 0
FavorUTF8 1 Booleano Si es distinto de cero, Http.sys siempre intenta descodificar una dirección URL como UTF-8 primero; si se produce un error en la EnableNonUTF8 conversión y no es cero, Http.sys luego intenta descodificarlo como ANSI o DBCS. Si es cero (y EnableNonUTF8 es distinto de cero), Http.sys intenta descodificarlo como ANSI o DBCS; si no se realiza correctamente, intenta una conversión UTF-8. 0
MaxBytesPerSend 65536 1-0xFFFFF (bytes) Invalida el tamaño de la ventana TCP que usa Http.sys. Un valor más alto puede permitir velocidades de descarga más altas en entornos de red con ancho de banda alto y alta latencia. 0
MaxConnections MAX_ULONG 1024 (1k): conexiones 2031616 (2 MB) Invalida el cálculo MaxConnections en el controlador. Se trata principalmente de una función de memoria. 1
MaxEndpoints 0 0 - 1024 Número máximo de objetos de extremo actuales permitidos. El valor predeterminado de cero implica que el máximo se calcula a partir de la memoria disponible. 1
MaxFieldLength 16384 64 - 65534 (64k - 2) bytes Establece un límite superior para cada encabezado. Consulte MaxRequestBytes. Este límite se traduce en aproximadamente 32k caracteres para una dirección URL. 1
MaxRequestBytes 16384 256: 16777216 bytes (16 MB) Determina el límite superior para el tamaño total de la línea de solicitud y los encabezados.
Su configuración predeterminada es de 16 KB. Si este valor es menor que MaxFieldLength, el MaxFieldLength valor se ajusta.
1
PercentUAllowed 1 Booleano Si es distinto de cero, Http.sys acepta la notación % uNNNN en las direcciones URL de solicitud. 0
UrlSegmentMaxCount 255 0 - 16.383 segmentos Número máximo de segmentos de ruta de dirección URL. Si es cero, el recuento delimitado por el valor máximo de un ULONG. 1
UriEnableCache 1 Booleano Si no es cero, la Http.sys respuesta y la memoria caché de fragmentos están habilitadas. 0
UriMaxUriBytes 262144 (bytes) 4096 (4k): bytes 16777216 (16 MB) Cualquier respuesta que sea mayor que este valor no se almacena en caché en la memoria caché de respuesta del kernel. 1
3
UriScavengerPeriod 120 (segundos) 10: 0xFFFFFFFF segundos Determina la frecuencia del carroñero de caché. Se vacía cualquier respuesta o fragmento al que no se haya tenido acceso en el número de segundos igual UriScavengerPeriod a. 1
2
UrlSegmentMaxLength 260 0 - 32.766 caracteres Número máximo de caracteres en un segmento de ruta de dirección URL (el área entre las barras diagonales de la dirección URL). Si es cero, es la longitud delimitada por el valor máximo de un ULONG. 1
DisableServerHeader 0 0 - 2 Esta clave controla el http.sys se comporta con respecto a anexar el servidor de encabezado de respuesta http para las respuestas que envía a los clientes. Un valor de 0, que es el valor predeterminado, usará el valor de encabezado que la aplicación proporciona a http.sys, Microsoft-HTTPAPI/2.0 o anexará el valor predeterminado del encabezado de respuesta. Un valor de 1 no anexará el encabezado Server para las respuestas generadas por http.sys (las respuestas terminan en 400, 503 y otros códigos de estado). Un valor de 2 impedirá http.sys agregar un encabezado de servidor a la respuesta. Si un encabezado de servidor está presente en la respuesta, no se quitará, si uno no está presente, no se agregará. 0

Puede experimentar un rendimiento lento en Internet Information Services (IIS) cuando las aplicaciones de la API de Internet Server (ISAPI) o las aplicaciones de interfaz de puerta de enlace común (CGI) hospedadas en las respuestas de envío de IIS. Si experimenta este problema, puede agregar el valor MaxBufferedSendBytes DWORD al Registro.

En Windows Server 2008 y versiones posteriores, también puede crear el siguiente valor DWORD en la siguiente clave del Registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters

Clave del Registro Valor predeterminado Intervalo de valores válido Función clave del Registro Código WARNING
CertChainCacheOnlyUrlRetrieval 1 0
1
De forma predeterminada, las sugerencias de AIA no se siguen durante la validación de cadena cuando IIS está configurado para usar certificados de cliente. Este comportamiento es por motivos de rendimiento y seguridad. Por ejemplo, este comportamiento puede ayudar a evitar ataques DoS. Sin embargo, este comportamiento también puede provocar rechazos inesperados de certificados cuando se necesita la recuperación de AIA. Para invalidar este comportamiento, puede establecer el parámetro DWORD CertChainCacheOnlyUrlRetrieval en 0 (cero) en la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters del Registro. No aplicable

Códigos de advertencia

  • 0: Sin riesgos.
  • 1: Cambiar esta clave del Registro se considera peligroso. Esta clave hace que Http.sys usar más memoria y puede aumentar la vulnerabilidad a ataques malintencionados.
  • 2: Un valor bajo puede provocar que la memoria caché se vacíe con más frecuencia. Si se produce este comportamiento, puede afectar al rendimiento.
  • 3: Un valor bajo puede afectar al rendimiento del contenido estático.

Los cambios realizados en el Registro no tendrán efecto hasta que reinicie el servicio HTTP. Además, es posible que tenga que reiniciar cualquier servicio IIS relacionado.

Para reiniciar el servicio HTTP, escriba y todos los servicios IIS relacionados, siga estos pasos:

  1. Seleccione Inicio**, ejecutar,** escriba Cmd y, a continuación, seleccione Aceptar.

  2. En el símbolo del sistema, escriba net stop http y presione Entrar.

  3. En el símbolo del sistema, escriba net start http y presione Entrar.

  4. En el símbolo del sistema, escriba net stop iisadmin /y y presione Entrar.

    Nota

    También se detendrán los servicios IIS que dependan del servicio de administración de IIS. Observe los servicios de IIS que se detienen al detener el servicio de servicio de administración de IIS. Reiniciará cada servicio en el paso siguiente.

  5. Reinicie los servicios IIS que se detuvieron en el paso 4. Para ello, escriba en net start servicename el símbolo del sistema y, a continuación, presione ENTRAR. En el comando, servicename es el nombre del servicio que desea reiniciar. Por ejemplo, para reiniciar el servicio world wide web publishing service, escriba net start World Wide Web Publishing Servicey, a continuación, presione ENTRAR.