set-header

GILT FÜR: Alle API Management-Ebenen

Die Richtlinie set-header weist einem vorhandenen HTTP-Antwort- und/oder -Anforderungsheader einen Wert zu oder fügt einen neuen Antwort- und/oder Anforderungsheader hinzu.

Verwenden Sie die Richtlinie, um eine Liste von HTTP-Headern in eine HTTP-Nachricht einzufügen. In eingehenden Pipelines setzt diese Richtlinie die HTTP-Header für die Anforderung, die an den Zieldienst übergeben wird. In ausgehenden Pipelines legt diese Richtlinie die HTTP-Header für die Antwort fest, die an den Client des Gateways gesendet wird.

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Das Portal unterstützt Sie bei der Konfiguration dieser Richtlinie durch einen formularbasierten, angeleiteten Editor. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

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

Attributes

Name BESCHREIBUNG Erforderlich Standard
exists-action Gibt die auszuführende Aktion an, wenn bereits ein Header angegeben wurde. Dieses Attribut muss einen der folgenden Werte aufweisen.

- override: Ersetzt den Wert des vorhandenen Headers.
- skip: Der vorhandene Headerwert wird nicht ersetzt.
- append: Fügt den Wert an den vorhandenen Headerwert an.
- delete: Entfernt den Header aus der Anforderung.

Bei einer Festlegung auf override führt die Auflistung mehrerer Einträge mit demselben Namen dazu, dass der Header gemäß aller Einträge festgelegt wird (die mehrfach aufgeführt sind); nur die aufgelisteten Werte werden im Ergebnis festgelegt.

Richtlinienausdrücke sind zulässig.
Nein override
name Der Name des zu setzenden Headers. Richtlinienausdrücke sind zulässig. Ja

Elemente

Name BESCHREIBUNG Erforderlich
value Der Wert für den zu setzenden Header. Richtlinienausdrücke sind zulässig. Fügen Sie bei mehreren Headern mit dem gleichen Namen weitere value-Elemente hinzu. Nein

Verwendung

Hinweise zur Verwendung

Mehrere Werte eines Headers sind zu einer CSV-Zeichenfolge verkettet, beispielsweise:

headerName: value1,value2,value3

Zu den Ausnahmen zählen standardisierte Header, deren Werte:

  • Kann Kommas enthalten (User-Agent, WWW-Authenticate, Proxy-Authenticate)
  • Datumswerte (Cookie, Set-Cookie, Warning),
  • oder ein Datum enthalten können (Date, Expires, If-Modified-Since, If-Unmodified-Since, Last-Modified, Retry-After).

Bei diesen Ausnahmen werden mehrere Headerwerte nicht zu einer Zeichenfolge verkettet, sondern stattdessen als einzelne Header übergeben, beispielsweise:

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

Es gelten die folgenden Einschränkungen:

  • Das Entfernen von Server-Headern wird nicht unterstützt.
  • Header: Connection, ContentLength, KeepAlive, TransferEncoding können nicht geändert oder gelöscht werden.

Beispiele

Header hinzufügen, vorhandene überschreiben

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

Header entfernen

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

Weiterleiten von Kontextinformationen an den Back-End-Dienst

In diesem Beispiel wird gezeigt, wie die Richtlinie auf API-Ebene angewendet wird, um dem Back-End-Dienst Kontextinformationen bereitzustellen.

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

Weitere Informationen finden Sie unter Richtlinienausdrücke und Kontextvariable.

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: