Http.sys configurações de registro para Windows

Este artigo descreve Http.sys configurações de registro para Windows.

Versão original do produto: Windows 8, Windows Server 2012, 2008 R2, 2008
Número de KB original: 820129

Resumo

No Windows Server 2008 e versões posteriores, Http.sys é o driver do modo kernel que lida com solicitações HTTP (Protocolo de Transferência de Hipertexto). Vários valores de registro podem ser configurados de acordo com requisitos específicos. A tabela na seção Chaves do Registro contém as seguintes informações sobre esses valores de registro:

  • Nomes de chave do Registro
  • Valores padrão
  • Intervalos de valores válidos
  • Funções de chave do Registro
  • Códigos DE AVISO (quando aplicável)

Observação

Consulte a seção Códigos de aviso para obter informações sobre possíveis riscos ao criar e configurar valores de registro usando configurações diferentes das configurações padrão.

Este artigo destina-se a usuários avançados e assume o conhecimento do registro e dos riscos que estão envolvidos quando o registro é alterado.

Chaves de registro

Importante

Esta seção, método ou tarefa contém etapas que descrevem como modificar o Registro. Entretanto, sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Portanto, siga essas etapas cuidadosamente. Para mais proteção, faça o backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro se ocorrer um problema. Para saber mais sobre como fazer o backup e restaurar o registro, consulte Como fazer o backup e restaurar o registro no Windows.

Você pode criar os seguintes valores de registro DWORD na seguinte chave do registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Chave do Registro Valor padrão Intervalo de valor válido Função chave do Registro Código WARNING
AllowRestrictedChars 0 Booliano Se não zero, Http.sys aceitará chars hex-escaped em URLs de solicitação que decodificam para U+0000 - U+001F e U+007F - intervalos U+009F. 0
EnableAggressiveMemoryUsage 0 0
1
Preallocate memória de pool nãopaged. Por padrão, o serviço HTTP deixa de aceitar conexões quando menos de 20 megabytes (MB) de memória de pool nãopagada estiverem disponíveis. Depois de adicionar esse valor ao registro, o serviço HTTP para de aceitar conexões quando menos de 8 MB de memória de pool nãopagada estiver disponível. Definir esse valor de registro pode reduzir o número de erros de Connections_refused e 503 no arquivo Httperr.log . 0
EnableNonUTF8 1 Booliano Se zero, Http.sys aceita apenas URLs codificadas por UTF-8. Se não for zero, Http.sys também aceitará URLs codificadas por ANSI ou DBCS em solicitações. 0
FavorUTF8 1 Booliano Se não for zero, Http.sys sempre tentar decodificar uma URL como UTF-8 primeiro; se essa conversão falhar e EnableNonUTF8 não for zero, Http.sys tentar decodificá-la como ANSI ou DBCS. Se zero (e EnableNonUTF8 não for zero), Http.sys tentar decodificá-lo como ANSI ou DBCS; se isso não for bem-sucedido, ele tentará uma conversão UTF-8. 0
MaxBytesPerSend 65536 1-0xFFFFF (Bytes) Substitui o tamanho da janela TCP que é usado por Http.sys. Um valor mais alto pode habilitar velocidades de download mais altas em ambientes de rede com alta largura de banda e alta latência. 0
Maxconnections MAX_ULONG 1024 (1k) – conexões de 2031616 (2 MB) Substitui o MaxConnections cálculo no driver. Essa é principalmente uma função de memória. 1
MaxEndpoints 0 0 - 1024 O número máximo de objetos de ponto de extremidade atuais permitidos. O valor padrão de zero implica que o máximo é calculado a partir da memória disponível. 1
MaxFieldLength 16384 64 - 65534 (64k - 2) bytes Define um limite superior para cada cabeçalho. Consulte MaxRequestBytes. Esse limite se traduz em aproximadamente 32 mil caracteres para uma URL. 1
MaxRequestBytes 16384 256 – bytes de 16777216 (16 MB) Determina o limite superior para o tamanho total da linha De solicitação e dos cabeçalhos.
Sua configuração padrão é de 16 KB. Se esse valor for menor que MaxFieldLength, o MaxFieldLength valor será ajustado.
1
PercentUAllowed 1 Booliano Se não for zero, Http.sys aceitará a notação % uNNNN nas URLs de solicitação. 0
UrlSegmentMaxCount 255 0 - 16.383 segmentos Número máximo de segmentos de caminho de URL. Se zero, a contagem limitada pelo valor máximo de um ULONG. 1
UriEnableCache 1 Booliano Se não for zero, a resposta Http.sys e o cache de fragmentos serão habilitados. 0
UriMaxUriBytes 262144 (bytes) 4096 (4k) – bytes de 16777216 (16 MB) Qualquer resposta maior que esse valor não é armazenada em cache no cache de resposta do kernel. 1
3
UriScavengerPeriod 120 (segundos) 10 - 0xFFFFFFFF segundos Determina a frequência do coletor de cache. Qualquer resposta ou fragmento que não tenha sido acessado no número de segundos igual a UriScavengerPeriod é liberado. 1
2
UrlSegmentMaxLength 260 0 - 32.766 chars Número máximo de caracteres em um segmento de caminho de URL (a área entre as barras na URL). Se zero, é o comprimento que é limitado pelo valor máximo de um ULONG. 1
DisableServerHeader 0 0 – 2 Essa chave controla como http.sys se comporta no que diz respeito à anexação do servidor de cabeçalho de resposta http para respostas enviadas aos clientes. Um valor de 0, que é o valor padrão, usará o valor de cabeçalho que o aplicativo fornece para http.sys ou acrescentará o valor padrão do ao cabeçalho de Microsoft-HTTPAPI/2.0 resposta. Um valor de 1 não acrescentará o cabeçalho do Servidor para respostas geradas por http.sys (respostas que terminam em 400, 503 e outros códigos de status). Um valor de 2 impedirá que http.sys anexe um cabeçalho do Servidor à resposta. Se um cabeçalho do Servidor estiver presente na resposta, ele não será removido, se um não estiver presente, ele não será adicionado. 0

Você pode ter um desempenho lento no IIS (Internet Information Services) quando aplicativos ISAPI (API do Servidor de Internet) ou aplicativos CGI (Common Gateway Interface) hospedados em respostas de envio do IIS. Se você tiver esse problema, poderá adicionar o MaxBufferedSendBytes valor DWORD ao registro.

No Windows Server 2008 e versões posteriores, você também pode criar o seguinte valor DWORD na seguinte chave do registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters

Chave do Registro Valor padrão Intervalo de valor válido Função chave do Registro Código WARNING
CertChainCacheOnlyUrlRetrieval 1 0
1
Por padrão, as dicas do AIA não são seguidas durante a validação de cadeia quando o IIS está configurado para usar certificados de cliente. Esse comportamento é por motivos de desempenho e segurança. Por exemplo, esse comportamento pode ajudar a evitar ataques do DoS. No entanto, esse comportamento também pode levar a rejeições inesperadas de certificado quando a recuperação do AIA é necessária. Para substituir esse comportamento, você pode definir o parâmetro CertChainCacheOnlyUrlRetrieval DWORD como 0 (zero) na chave do HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters registro. Não aplicável

Códigos de aviso

  • 0: Sem riscos.
  • 1: A alteração dessa chave do registro é considerada perigosa. Essa chave faz com que Http.sys usem mais memória e possam aumentar a vulnerabilidade a ataques mal-intencionados.
  • 2: Um valor baixo pode fazer com que o cache seja liberado com mais frequência. Se esse comportamento ocorrer, poderá afetar o desempenho.
  • 3: Um valor baixo pode afetar o desempenho do conteúdo estático.

As alterações feitas no registro não entrarão em vigor até que você reinicie o serviço HTTP. Além disso, talvez seja necessário reiniciar qualquer serviço de IIS relacionado.

Para reiniciar o serviço HTTP, digite e todos os serviços de IIS relacionados, siga estas etapas:

  1. Selecione Iniciar, selecione Executar, digite Cmd e, em seguida, selecione OK.

  2. No prompt de comando, digite net stop http e pressione Enter.

  3. No prompt de comando, digite net start http e pressione Enter.

  4. No prompt de comando, digite net stop iisadmin /y e pressione Enter.

    Observação

    Todos os serviços do IIS que dependem do serviço de serviço de Administração do IIS também serão interrompidos. Observe os serviços do IIS que são interrompidos quando você interrompe o serviço de Serviço de Administração do IIS. Você reiniciará cada serviço na próxima etapa.

  5. Reinicie os serviços do IIS que foram interrompidos na etapa 4. Para fazer isso, digite net start servicename no prompt de comando e pressione Enter. No comando, servicename é o nome do serviço que você deseja reiniciar. Por exemplo, para reiniciar o serviço world wide web publishing service, digite net start World Wide Web Publishing Servicee pressione Enter.