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
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).
En el panel Conexiones, vaya al sitio, aplicación o directorio para los que desea habilitar conexiones persistentes HTTP.
En el panel Inicio, haga doble clic en Encabezados de respuesta HTTP.
En el panel Encabezados de respuesta HTTP, en el panel Acciones, haga clic en Establecer encabezados comunes....
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.
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()