Установка заголовка

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API

Политика set-header назначает значение существующему заголовку HTTP-ответа или запроса или добавляет новый ответ и /или заголовок запроса.

Используйте политику для вставки списка заголовков HTTP в HTTP-сообщение. Если эта политика находится во входящем конвейере, она устанавливает HTTP-заголовки для запроса, передаваемого в целевую службу. Если эта политика находится в исходящем конвейере, она устанавливает HTTP-заголовки для ответа, отправляемого клиенту шлюза.

Примечание.

Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Чтобы помочь вам настроить эту политику, портал предоставляет интерактивный редактор на основе форм. Узнайте, как устанавливать или изменять политики службы управления API.

Правило политики

<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, при перечислении нескольких записей с одинаковым именем заголовок устанавливается в соответствии со всеми записями (которые будут перечислены несколько раз). В результате будут заданы только перечисленные значения.

Допустимы выражения политики.
No override
name Указывает имя заголовка, которое должно быть установлено. Допустимы выражения политики. Да Н/П

Элементы

Имя Описание Обязательное поле
значение Определяет значение заголовка, который будет установлен. Допустимы выражения политики. Для нескольких заголовков с одинаковым именем добавьте дополнительные value элементы. No

Использование

Примечания об использовании

Несколько значений заголовка сцепляются в строку 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, KeepAliveTransferEncoding не могут быть изменены или удалены.

Примеры

Добавление заголовка, переопределение существующего

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

Чтобы узнать больше, см. статью API Management policy expressions (Выражения политики управления API) и раздел Context variable (Переменная контекста).

Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.