Share via


Encabezados personalizados <customHeaders>

Información general

El elemento <customHeaders> del elemento <httpProtocol> especifica encabezados HTTP personalizados que Internet Information Services (IIS) 7 devolverá en respuestas HTTP desde el servidor web.

Nota:

Los encabezados HTTP son pares de nombre y valor que se devuelven en las respuestas de un servidor web. Los encabezados de respuesta personalizados se envían al cliente junto con el encabezado HTTP predeterminado. A diferencia de los encabezados de respuesta de redireccionamiento, que se devuelven en las respuestas solo cuando se produce el redireccionamiento, los encabezados de respuesta personalizados se devuelven en cada respuesta.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <customHeaders> no se modificó en IIS 10.0.
IIS 8.5 El elemento <customHeaders> no se modificó en IIS 8.5.
IIS 8.0 El elemento <customHeaders> no se modificó en IIS 8.0.
IIS 7.5 El elemento <customHeaders> no se modificó en IIS 7.5.
IIS 7.0 El elemento <customHeaders> del elemento <httpProtocol> se introdujo en IIS 7.0.
IIS 6,0 El elemento <customHeaders> reemplaza al objeto de metabase HttpCustomHeaders de IIS 6.0.

Configuración

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

Procedimientos

Establecimiento de encabezados HTTP personalizados 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 establecer un encabezado HTTP personalizado.

  3. En el panel Inicio, haga doble clic en Encabezados de respuesta HTTP.
    Screenshot that shows the Home pane with H T T P Response Headers selected.

  4. En el panel Encabezados de respuesta HTTP, haga clic en Agregar... en el panel Acciones.
    Screenshot of H T T P Response Headers pane with Add option displayed in the Actions pane.

  5. En el cuadro de diálogo Agregar encabezado de respuesta HTTP personalizado, establezca el nombre y el valor del encabezado personalizado y, a continuación, haga clic en Aceptar.
    Screenshot of Add Custom H T T P Header dialog box with fields for name and value for custom header.

Configuración

Atributos

Ninguno.

Elementos secundarios

Elemento Descripción
add Elemento opcional.

Agrega un encabezado de respuesta personalizado a la colección <customHeaders>.
clear Elemento opcional.

Quita todas las referencias a encabezados de respuesta personalizados de la colección <customHeaders>.
remove Elemento opcional.

Quita una referencia a un encabezado de respuesta personalizado de la colección <customHeaders>.

Ejemplo de configuración

En el ejemplo de configuración siguiente se establece un encabezado y un valor HTTP personalizados.

<configuration>
   <system.webServer>
      <httpProtocol>
         <customHeaders>
            <add name="X-Custom-Name" value="MyCustomValue" />
         </customHeaders>
      </httpProtocol>
   </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 establece un encabezado y un valor HTTP personalizados.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/httpProtocol /+"customHeaders.[name='X-Custom-Name',value='MyCustomValue']"

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");
         ConfigurationElementCollection customHeadersCollection = httpProtocolSection.GetCollection("customHeaders");

         ConfigurationElement addElement = customHeadersCollection.CreateElement("add");
         addElement["name"] = @"X-Custom-Name";
         addElement["value"] = @"MyCustomValue";
         customHeadersCollection.Add(addElement);

         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")
      Dim customHeadersCollection As ConfigurationElementCollection = httpProtocolSection.GetCollection("customHeaders")

      Dim addElement As ConfigurationElement = customHeadersCollection.CreateElement("add")
      addElement("name") = "X-Custom-Name"
      addElement("value") = "MyCustomValue"
      customHeadersCollection.Add(addElement)

      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");
var customHeadersCollection = httpProtocolSection.ChildElements.Item("customHeaders").Collection;

var addElement = customHeadersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "X-Custom-Name";
addElement.Properties.Item("value").Value = "MyCustomValue";
customHeadersCollection.AddElement(addElement);

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")
Set customHeadersCollection = httpProtocolSection.ChildElements.Item("customHeaders").Collection

Set addElement = customHeadersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "X-Custom-Name"
addElement.Properties.Item("value").Value = "MyCustomValue"
customHeadersCollection.AddElement(addElement)

adminManager.CommitChanges()