No Windows Server 2003, o HTTP.sys é o controlador de modo kernel que processa pedidos HTTP. Vários valores de registo podem ser configurados acordo com a necessidades específicas. A tabela na secção "Mais informação" contém as seguintes informações sobre estes valores de registo:
- Nomes de chaves de registo
- Valores predefinidos
- Intervalos de valores válido
- Funções chave do registo
- Códigos de aviso (onde apropriado)
Nota Consulte a secção "Aviso códigos" para obter informações sobre riscos potenciais quando criar e configurar os valores de registo utilizando definições diferentes das predefinidas.
Este artigo destina-se os utilizadores avançados e pressupõe o conhecimento do registo e dos riscos envolvidos quando o registo é alterado.
importante Esta secção, método ou tarefa contém passos que indicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo de forma incorrecta. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Criar uma para protecção adicional, cópia de segurança do registo antes de o modificar. Em seguida, pode restaurar o registo se ocorrer um problema. Para obter mais informações sobre como efectuar uma cópia de segurança e restaurar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
322756
(http://support.microsoft.com/kb/322756/
)
Como efectuar uma cópia de segurança e restaurar o registo no Windows
Pode criar os seguintes valores DWORD na seguinte chave de registo:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Reduzir esta tabelaExpandir esta tabela
| Chave de registo | Valor predefinido | Intervalo de valores válido | Função de chave de registo | Código de aviso |
|---|
| AllowRestrictedChars | 0 | Valor boleano | Se diferente de zero, HTTP.sys aceita caracteres de escape hex num pedido de URL descodificam a intervalos U + 009F 0000 ? U + 001F e U + 007F ? U +. | 0 |
| EnableAggressiveMemoryUsage | 0 | 0,1 | Preallocate memória não paginado. Por predefinição, o serviço HTTP pára aceitar ligações quando existe menos de 20 megabytes (MB) de memória não paginado. Depois de adicionar este valor ao registo, o serviço HTTP deixa de aceitar ligações quando menor que 8 MB de memória não paginado estiver disponível. Definir este valor de registo pode reduzir o número de "Connections_refused" e 503 erros no ficheiro Httperr.log. | 0 |
| EnableNonUTF8 | 1 | Valor boleano | Se for zero, o HTTP.sys aceita apenas URL codificado em UTF-8. Se não-zero, HTTP.sys também aceita ou DBCS código ANSI URLs nos pedidos. | 0 |
| FavorUTF8 | 1 | Valor boleano | Se não-zero, HTTP.sys sempre tenta descodificar um URL como UTF-8 pela primeira vez; se essa conversão falha e EnableNonUTF8 for diferente de zero, HTTP.sys, em seguida, tenta descodificar como ANSI ou DBCS. Se for zero (e EnableNonUTF8 for diferente de zero), HTTP.sys tenta descodificar como ANSI ou DBCS; se não tiver êxito, tente uma conversão de UTF-8. | 0 |
| MaxBytesPerSend | 65536 | 1-0xFFFFF (bytes) | Substitui o tamanho da janela TCP utilizada pelo HTTP.sys. Um valor mais elevado poderá permitir altas velocidades de transferência em ambientes de rede com grande largura de banda e de latência elevada. | 0 |
| MaxConnections | MAX_ULONG | 1024(1k) ? 2031616 ligações (2 MB) | Substitui o cálculo de MaxConnections no controlador. Esta é principalmente uma função de memória. | 1 |
| MaxEndpoints | 0 | 0 - 1024 | O número máximo de objectos actual do ponto final que são permitidos. O valor predefinido de zero indica que o máximo é calculado a partir da memória disponível | 1 |
| MaxFieldLength | 16384 | 65534 64 (64 k - 2) bytes | Define um limite superior de cada cabeçalho. Consulte MaxRequestBytes. Este limite converte aproximadamente k de 32 caracteres para um URL. | 1 |
| MaxRequestBytes | 16384 | 16777216 256 Bytes (16 MB) | Determina o limite superior para o tamanho total da linha de pedido e os cabeçalhos. A predefinição é 16 KB. Se este valor for inferior a MaxFieldLength, o valor de MaxFieldLength é ajustado. | 1 |
| PercentUAllowed | 1 | Valor boleano | Se não-zero, HTTP.sys aceita a notação de uNNNN % no pedido de URL. | 0 |
| UrlSegmentMaxCount | 255 | 0 - 16.383 segmentos | Número máximo de segmentos de caminho de URL. Se for zero, a contagem é limitada pelo valor máximo de um ULONG. | 1 |
| UriEnableCache | 1 | Valor boleano | Se for diferente de zero, a cache de resposta e fragmento HTTP.sys está activada. | 0 |
| UriMaxUriBytes | 262144 (bytes) | 4096(4K) ? 16777216(16MB) bytes | Qualquer resposta que seja maior do que este valor não é colocada em cache na cache de resposta de kernel. | 1 3 |
| UriScavengerPeriod | 120 (segundos) | 10 0xFFFFFFFF segundos | Determina a frequência da limpeza da cache. Qualquer resposta ou fragmento que não foi acedido no número de segundos iguais a UriScavengerPeriod é esvaziado. | 1 2 |
| UrlSegmentMaxLength | 260 | 0 - 32.766 caracteres | Número máximo de caracteres de um segmento de caminho de URL (a área entre as barras no URL). Se for zero, é o comprimento é limitado pelo valor máximo de um ULONG. | 1 |
Poderá detectar um desempenho lento na Microsoft (IIS) 6.0 quando aplicações de ISAPI (Internet Server API) ou aplicações de interface comum para gateways (CGI, Common Gateway Interface) que estão hospedadas no IIS 6.0 enviassem respostas. Se detectar este problema, pode adicionar o valor DWORD MaxBufferedSendBytes ao registo.Para obter mais informações sobre este problema, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
906977
(http://support.microsoft.com/kb/906977/
)
Erro: Detectar um desempenho lento quando aplicações de ISAPI e aplicações de CGI que estão hospedadas no IIS 6.0 enviam respostas
No Microsoft Windows XP e no Microsoft Windows Server 2003, também é possível criar o seguinte valor DWORD na seguinte chave de registo:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters
Reduzir esta tabelaExpandir esta tabela
| Chave de registo | Valor predefinido | Intervalo de valores válido | Função de chave de registo | Código de aviso |
|---|
| CertChainCacheOnlyUrlRetrieval | 1 | 0,1 | Por predefinição, as sugestões AIA não são seguidas durante a validação da cadeia quando o IIS está configurado para utilizar certificados de cliente. Este comportamento é existentes por motivos de desempenho e segurança. Por exemplo, este comportamento pode ajude a evitar ataques DoS. No entanto, este comportamento também poderá conduzir a rejeições de certificado inesperado quando a obtenção de AIA é necessária. Para substituir este comportamento, pode definir o parâmetro DWORD CertChainCacheOnlyUrlRetrieval para 0 (zero) na chave de registo "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters". | Não aplicável |
Códigos de aviso
- 0: Existem riscos.
- 1: Alterar esta chave de registo é considerado extremamente perigoso. Esta chave faz com que o HTTP.sys utilizar mais memória e poderá aumentar a vulnerabilidade a ataques maliciosos.
- 2: Um valor baixo pode causar a cache para ser descarregados com mais frequência. Se isso acontecer, pode afectar o desempenho.
- 3: Um valor baixo poderá afectar o desempenho de conteúdo estático.
As alterações efectuadas ao registo terão efeito até que reinicie o serviço HTTP. Além disso, poderá ter de reiniciar os serviços do IIS relacionados.
Para reiniciar o serviço HTTP, tipo e relacionados todos os serviços do IIS, siga estes passos:
- Clique em Iniciar , clique em Executar , escreva Cmd e, em seguida, clique em OK .
- Na linha de comandos, escreva net stop http num prompt de comando e, em seguida, prima ENTER.
- Na linha de comandos, escreva net start http num prompt de comando e, em seguida, prima ENTER.
- Na linha de comandos, escreva net stop iisadmin/y na linha de comandos e, em seguida, prima ENTER.
Nota Os serviços IIS dependem do serviço IIS Admin Service também serão parados. Tenha em atenção os serviços IIS que são parados quando pára o serviço Serviço Admin do IIS. Irá reiniciar cada serviço no passo seguinte. - Reinicie os serviços do IIS que foram parados no passo 4. Para o fazer, escreva net start servicename na linha de comandos e, em seguida, prima ENTER. No comando, servicename é o nome do serviço que pretende reiniciar. Por exemplo, para reiniciar o serviço de ' Serviço de publicação na World Wide Web ', escreva net start "serviço de publicação na World Wide Web" e, em seguida, prima ENTER.