사용자 지정 헤더 <추가>

개요

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

참고

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

호환성

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

설치 프로그램

<add> 요소의 <customHeaders> 요소는 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 응답 헤더를 두 번 클릭합니다.
    기본 웹 사이트 홈 페이지를 표시하는 I S Manager 창의 스크린샷 H T TP 응답 헤더에 대한 THe 아이콘이 강조 표시됩니다.

  4. HTTP 응답 헤더 창의작업 창에서 추가...를 클릭합니다.
    I S 관리자 창의 스크린샷은 H T T P 응답 헤더 페이지를 표시합니다.

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

구성

특성

attribute Description
name 필수 문자열 특성입니다.

사용자 지정 응답 헤더의 필드 이름을 지정합니다. 응답에서 필드 이름은 관련 필드 값 앞에 옵니다.
Value 선택적 문자열 특성입니다.

사용자 지정 응답 헤더의 필드 값을 지정합니다. 응답에서 필드 값은 관련 필드 이름을 따릅니다.

자식 요소

없음

구성 샘플

다음 구성 샘플은 사용자 지정 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()