헤더 설정

적용 대상: 모든 API Management 계층

set-header 정책은 기존 HTTP 응답 및/또는 요청 헤더에 값을 할당하거나 새 응답 및/또는 요청 헤더를 추가합니다.

정책을 사용하여 HTTP 메시지에 HTTP 헤더 목록을 삽입합니다. 이 정책을 인바운드 파이프라인에 지정하면 이 정책은 대상 서비스로 전달되는 요청의 HTTP 헤더를 설정합니다. 이 정책은 아웃바운드 파이프라인에 배치되는 경우 게이트웨이의 클라이언트로 보내는 응답의 HTTP 헤더를 설정합니다.

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. 이 정책을 구성하는 데 도움이 되도록 포털은 양식 기반의 안내형 편집기를 제공합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

정책 문

<set-header name="header name" exists-action="override | skip | append | delete">
    <value>value</value> <!--for multiple headers with the same name add additional value elements-->
</set-header>

특성

이름 설명 필수 항목 기본값
exists-action 헤더가 이미 지정된 경우 수행할 작업을 지정합니다. 이 특성에는 다음 값 중 하나가 있어야 합니다.

- override - 기존 헤더 값을 바꿉니다.
- skip - 기존 헤더 값을 바꾸지 않습니다.
- append - 기존 헤더 값에 값을 추가합니다.
- delete - 요청에서 헤더를 제거합니다.

override로 설정할 때 동일한 이름의 여러 항목을 등록하면 모든 항목(여러 번 나열됨)에 따라 헤더가 설정되며, 나열된 값만 결과에 설정됩니다.

정책 식이 허용됩니다.
아니요 override
name 설정할 헤더의 이름을 지정합니다. 정책 식이 허용됩니다. 해당 없음

Elements

이름 설명 필수
value 설정할 헤더의 값을 지정합니다. 정책 식이 허용됩니다. 동일한 이름을 가진 여러 헤더에 대해서는 추가 value 요소를 추가합니다. 아니요

사용

사용법 참고 사항

헤더의 다중 값은 CSV 문자열에 연결됩니다. 예를 들면 다음과 같습니다.

headerName: value1,value2,value3

예외에는 표준화된 헤더가 포함됩니다. 값은 다음과 같습니다.

  • 쉼표를 포함할 수 있고(User-Agent, WWW-Authenticate, Proxy-Authenticate)
  • 날짜를 포함할 수 있고(Cookie, Set-Cookie, Warning),
  • 날짜를 포함합니다(Date, Expires, If-Modified-Since, If-Unmodified-Since , Last-Modified, Retry-After).

이러한 예외의 경우 여러 헤더 값이 하나의 문자열에 연결되지 않고 별도의 헤더로 전달됩니다. 예를 들면 다음과 같습니다.

User-Agent: value1
User-Agent: value2
User-Agent: value3

다음과 같은 제한 사항이 적용됩니다.

  • Server 헤더 제거는 지원되지 않습니다.
  • 헤더: Connection, ContentLength, KeepAlive, TransferEncoding은 수정하거나 삭제할 수 없습니다.

예제

헤더 추가, 기존 재정의

<set-header name="some header name" exists-action="override">
    <value>20</value>
</set-header>

헤더 제거

 <set-header name="some header name" exists-action="delete" />

컨텍스트 정보를 백 엔드 서비스로 전달

이 예제에서는 백 엔드 서비스에 컨텍스트 정보를 제공하기 위해 API 수준에서 정책을 적용하는 방법을 보여 줍니다.

<!-- Copy this snippet into the inbound element to forward some context information, user id and the region the gateway is hosted in, to the backend service for logging or evaluation -->
<set-header name="x-request-context-data" exists-action="override">
  <value>@(context.User.Id)</value>
  <value>@(context.Deployment.Region)</value>
</set-header>

자세한 내용은 정책 식컨텍스트 변수를 참조하세요.

정책 작업에 대한 자세한 내용은 다음을 참조하세요.