다음을 통해 공유


사용자 지정 헤더 <customHeaders>

개요

<customHeaders> 요소의 <httpProtocol> 요소는 IIS(인터넷 정보 서비스) 7이 웹 서버의 HTTP 응답에서 반환하는 사용자 지정 HTTP 헤더를 지정합니다.

참고

HTTP 헤더는 웹 서버의 응답에서 반환되는 이름 및 값 쌍입니다. 사용자 지정 응답 헤더는 기본 HTTP 헤더와 함께 클라이언트로 전송됩니다. 리디렉션이 발생할 때만 응답에 반환되는 리디렉션 응답 헤더와 달리 사용자 지정 응답 헤더는 모든 응답에서 반환됩니다.

호환성

버전 참고
IIS 10.0 <customHeaders> 요소가 IIS 10.0에서 수정되지 않았습니다.
IIS 8.5 <customHeaders> 요소가 IIS 8.5에서 수정되지 않았습니다.
IIS 8.0 <customHeaders> 요소가 IIS 8.0에서 수정되지 않았습니다.
IIS 7.5 <customHeaders> 요소가 IIS 7.5에서 수정되지 않았습니다.
IIS 7.0 <customHeaders> 요소의 <httpProtocol> 요소는 IIS 7.0에서 도입되었습니다.
IIS 6.0 요소는 <customHeaders> IIS 6.0 HttpCustomHeaders 메타베이스 개체를 대체합니다.

설치 프로그램

<customHeaders> 요소의 <httpProtocol> 요소는 IIS 7의 기본 설치에 포함됩니다.

방법

웹 사이트 또는 애플리케이션에 대한 사용자 지정 HTTP 헤더를 설정하는 방법

  1. IIS(인터넷 정보 서비스) 관리자를 엽니다.

    • Windows Server 2012 또는 Windows Server 2012 R2를 사용하는 경우:

      • 작업 표시줄에서 서버 관리자 클릭하고 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows 8 또는 Windows 8.1 사용하는 경우:

      • Windows 키를 누른 채로 문자 X를 누른 다음 제어판 클릭합니다.
      • 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
    • Windows Server 2008 또는 Windows Server 2008 R2를 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows Vista 또는 Windows 7을 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
      • 관리 도구를 두 번 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
  2. 연결 창에서 사용자 지정 HTTP 헤더를 설정할 사이트, 애플리케이션 또는 디렉터리로 이동합니다.

  3. 창에서 HTTP 응답 헤더를 두 번 클릭합니다.
    H T T P 응답 헤더가 선택된 홈 창을 보여 주는 스크린샷.

  4. HTTP 응답 헤더 창의작업 창에서 추가...를 클릭합니다.
    작업 창에 추가 옵션이 표시된 H T TP 응답 헤더 창의 스크린샷

  5. 사용자 지정 HTTP 응답 헤더 추가 대화 상자에서 사용자 지정 헤더의 이름과 값을 설정한 다음 확인을 클릭합니다.
    사용자 지정 헤더의 이름 및 값 필드가 있는 사용자 지정 H T T P 헤더 추가 대화 상자의 스크린샷

구성

특성

없음

자식 요소

요소 Description
add 선택적 요소입니다.

컬렉션에 사용자 지정 응답 헤더를 <customHeaders> 추가합니다.
clear 선택적 요소입니다.

컬렉션에서 사용자 지정 응답 헤더에 대한 모든 참조를 <customHeaders> 제거합니다.
remove 선택적 요소입니다.

컬렉션에서 사용자 지정 응답 헤더에 대한 참조를 <customHeaders> 제거합니다.

구성 샘플

다음 구성 샘플은 사용자 지정 HTTP 헤더 및 값을 설정합니다.

<configuration>
   <system.webServer>
      <httpProtocol>
         <customHeaders>
            <add name="X-Custom-Name" value="MyCustomValue" />
         </customHeaders>
      </httpProtocol>
   </system.webServer>
</configuration>

참고

다음 기본 <httpProtocol> 요소는 IIS 7의 ApplicationHost.config 파일에 구성됩니다.

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

샘플 코드

다음 코드 샘플은 사용자 지정 HTTP 헤더 및 값을 설정합니다.

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