Configurações de Protocolo HTTP <httpProtocol>
Visão geral
O elemento <httpProtocol>
configura conexões keep-alive HTTP, bem como cabeçalhos de resposta personalizados e redirecionados que o IIS (Serviços de Informações da Internet) 7 envia para os clientes Web.
Normalmente, um navegador faz várias solicitações para baixar uma página da Web inteira. Para melhorar o desempenho do servidor, a maioria dos navegadores da Web solicita que o servidor mantenha a conexão aberta entre essas várias solicitações, o que é um recurso conhecido como keep-alives HTTP. Sem o keep-alive HTTP, um navegador que faz muitas solicitações para uma página que contém vários elementos, como gráficos, pode exigir uma conexão separada para cada elemento. Essas solicitações e conexões adicionais exigem atividade e recursos extras do servidor, diminuindo a eficiência do servidor. As conexões adicionais também tornam um navegador muito mais lento e menos responsivo, especialmente em uma conexão lenta.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <httpProtocol> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <httpProtocol> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <httpProtocol> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <httpProtocol> não foi modificado no IIS 7.5. |
IIS 7.0 | O elemento <httpProtocol> foi introduzido no IIS 7.0. |
IIS 6,0 | O atributo allowKeepAlive do elemento <httpProtocol> substitui a propriedade de metabase AllowKeepAlive do IIS 6.0. |
Instalação
O elemento <httpProtocol>
está incluído na instalação padrão do IIS 7.
Instruções
Como habilitar keep-alives HTTP para um site ou aplicativo
Abra o Gerenciador do IIS (Serviços de Informações da Internet):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
No painel Conexões, acesse o site, o aplicativo ou o diretório para o qual você deseja habilitar keep-alives HTTP.
No painel Página Inicial, clique duas vezes em Cabeçalhos de Resposta HTTP.
Na página Cabeçalhos de Resposta HTTP, clique em Definir Cabeçalhos Comuns... no painel Ações.
Na caixa de diálogo Definir Cabeçalhos Comuns de Resposta HTTP, marque a caixa para habilitar keep-alives HTTP e clique em OK.
Configuração
Atributos
Atributo | Descrição |
---|---|
allowKeepAlive |
Atributo booliano opcional. Especifica se o processamento keep-alive é permitido (true) ou não (false). O valor padrão é true . |
Elementos filho
Elemento | Descrição |
---|---|
customHeaders |
Configura os cabeçalhos de resposta personalizados que são retornados em respostas do servidor Web. |
redirectHeaders |
Configura os cabeçalhos de resposta que são retornados em respostas somente quando o servidor Web redireciona as solicitações. |
Exemplo de configuração
Os exemplos de código a seguir habilitam keep-alives HTTP para o Site Padrão.
<configuration>
<system.webServer>
<httpProtocol allowKeepAlive="true" />
</system.webServer>
</configuration>
Observação
O elemento padrão <httpProtocol>
a seguir é configurado no arquivo ApplicationHost.config nos IIS 7.
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
Exemplo de código
Os exemplos de código a seguir habilitam keep-alives HTTP para o Site Padrão.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/httpProtocol /allowKeepAlive:"True"
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection httpProtocolSection = config.GetSection("system.webServer/httpProtocol");
httpProtocolSection["allowKeepAlive"] = true;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
Dim httpProtocolSection As ConfigurationSection = config.GetSection("system.webServer/httpProtocol")
httpProtocolSection("allowKeepAlive") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var httpProtocolSection = adminManager.GetAdminSection("system.webServer/httpProtocol", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpProtocolSection.Properties.Item("allowKeepAlive").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set httpProtocolSection = adminManager.GetAdminSection("system.webServer/httpProtocol", "MACHINE/WEBROOT/APPHOST/Default Web Site")
httpProtocolSection.Properties.Item("allowKeepAlive").Value = True
adminManager.CommitChanges()