Compartir a través de


Configuración del protocolo HTTP <httpProtocol>

Información general

El elemento <httpProtocol> configura las conexiones persistentes HTTP, así como los encabezados de respuesta personalizados y de redireccionamiento que Internet Information Services (IIS) 7 envía a los clientes web.

Normalmente, un explorador realiza varias solicitudes para descargar una página web completa. Para mejorar el rendimiento del servidor, la mayoría de los exploradores web solicitan que el servidor mantenga abierta la conexión entre estas varias solicitudes, que es una característica conocida como conexión persistente HTTP. Sin la conexión persistente HTTP, un explorador que realiza muchas solicitudes de una página que contiene varios elementos, como gráficos, podría requerir una conexión distinta para cada elemento. Estas solicitudes y conexiones adicionales requieren actividad y recursos adicionales del servidor, lo que reduce la eficacia de este. Las conexiones adicionales también hacen que un explorador sea mucho más lento y menos dinámico, especialmente a través de una conexión lenta.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <httpProtocol> no se modificó en IIS 10.0.
IIS 8.5 El elemento <httpProtocol> no se modificó en IIS 8.5.
IIS 8.0 El elemento <httpProtocol> no se modificó en IIS 8.0.
IIS 7.5 El elemento <httpProtocol> no se modificó en IIS 7.5.
IIS 7.0 El elemento <httpProtocol> se introdujo en IIS 7.0.
IIS 6,0 El atributo allowKeepAlive del elemento <httpProtocol> reemplaza la propiedad de metabase AllowKeepAlive de IIS 6.0.

Configuración

El elemento <httpProtocol> se incluye en la instalación predeterminada de IIS 7.

Procedimientos

Habilitación de conexiones persistentes HTTP para un sitio o aplicación web

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya al sitio, aplicación o directorio para los que desea habilitar conexiones persistentes HTTP.

  3. En el panel Inicio, haga doble clic en Encabezados de respuesta HTTP.
    Screenshot of the Default Web Site Home page. The H T T P Response Headers icon is highlighted.

  4. En el panel Encabezados de respuesta HTTP, en el panel Acciones, haga clic en Establecer encabezados comunes....
    Screenshot of the H T T P Response Headers page.

  5. En el cuadro de diálogo Establecer encabezados de respuesta HTTP comunes, active la casilla para permitir conexiones persistentes HTTP y, luego, haga clic en Aceptar.
    Screenshot of the Set Common H T T P Response Headers dialog box.

Configuración

Atributos

Atributo Descripción
allowKeepAlive Atributo Boolean opcional.

Especifica si se permite el procesamiento de conexiones persistentes (true) o no (false).

El valor predeterminado es true.

Elementos secundarios

Elemento Descripción
customHeaders Configura encabezados de respuesta personalizados que se devuelven en las respuestas del servidor web.
redirectHeaders Configura los encabezados de respuesta que se devuelven en las respuestas solo cuando el servidor web redirige las solicitudes.

Ejemplo de configuración

En los ejemplos de código siguientes se permiten conexiones persistentes HTTP para el sitio web predeterminado.

<configuration>
   <system.webServer>
      <httpProtocol allowKeepAlive="true" />
   </system.webServer>
</configuration>

Nota:

El siguiente elemento predeterminado <httpProtocol> está configurado en el archivo ApplicationHost.config en IIS 7.

<httpProtocol>
   <customHeaders>
      <clear />
      <add name="X-Powered-By" value="ASP.NET" />
   </customHeaders>
   <redirectHeaders>
      <clear />
   </redirectHeaders>
</httpProtocol>

Código de ejemplo

En los ejemplos de código siguientes se permiten conexiones persistentes HTTP para el sitio web predeterminado.

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