Compartilhar via


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

  1. 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).
  2. No painel Conexões, acesse o site, o aplicativo ou o diretório para o qual você deseja habilitar keep-alives HTTP.

  3. No painel Página Inicial, clique duas vezes em Cabeçalhos de Resposta HTTP.
    Screenshot of the Default Web Site Home page. The H T T P Response Headers icon is highlighted.

  4. Na página Cabeçalhos de Resposta HTTP, clique em Definir Cabeçalhos Comuns... no painel Ações.
    Screenshot of the H T T P Response Headers page.

  5. Na caixa de diálogo Definir Cabeçalhos Comuns de Resposta HTTP, marque a caixa para habilitar keep-alives HTTP e clique em OK.
    Screenshot of the Set Common H T T P Response Headers dialog box.

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()