Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A: todos los niveles de API Management
La directiva set-header
asigna un valor a un encabezado de respuesta o de solicitud HTTP existente o agrega un nuevo encabezado de este tipo.
Use la directiva para insertar una lista de encabezados HTTP en un mensaje HTTP. Cuando se coloca en un proceso entrante, esta directiva establece los encabezados HTTP para la solicitud que se pasa al servicio de destino. Cuando se coloca en una canalización saliente, esta directiva establece los encabezados HTTP para la respuesta que se está enviando al cliente de la puerta de enlace.
Nota
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Para que pueda configurar esta directiva, el portal proporciona un editor guiado basado en formularios. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<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>
Atributos
Asignar nombre | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
exists-action | Especifica la acción que se debe realizar cuando ya se ha especificado un encabezado. Este atributo debe tener uno de los siguientes valores: - override : sustituye el valor del encabezado existente.- skip : no sustituye el valor del encabezado existente.- append : anexa el valor al encabezado existente.- delete : quita el encabezado de la solicitud.Cuando se establece en override , si se inscriben varias entradas con el mismo nombre, se establece el encabezado de acuerdo con todas ellas (que se inscribirán varias veces); solo los valores mostrados se establecerán en el resultado. Se permiten expresiones de directiva. |
No | override |
nombre | Especifica el nombre del encabezado que se va a establecer. Se permiten expresiones de directiva. | Sí | N/D |
Elementos
Asignar nombre | Descripción | Necesario |
---|---|---|
valor | Especifica el valor del encabezado que se va a establecer. Se permiten expresiones de directiva. Para varios encabezados con el mismo nombre, agregue más elementos value . |
No |
Uso
- Secciones de directiva: entrante, saliente, back-end, on-error
- Ámbitos de la directiva: global, área de trabajo, producto, API, operación
- Puertas de enlace: clásica, v2, consumo, autohospedada y área de trabajo
Notas de uso
Varios valores de un encabezado se concatenan en una cadena CSV, por ejemplo:
headerName: value1,value2,value3
Las excepciones incluyen encabezados estandarizados, cuyos valores:
- pueden contener comas (
User-Agent
,WWW-Authenticate
,Proxy-Authenticate
) - pueden contener fechas (
Cookie
,Set-Cookie
,Warning
), - contienen fechas (
Date
,Expires
,If-Modified-Since
,If-Unmodified-Since
,Last-Modified
,Retry-After
).
En el caso de esas excepciones, varios valores de encabezado no se concatenarán en una cadena y se pasarán como encabezados independientes, por ejemplo:
User-Agent: value1
User-Agent: value2
User-Agent: value3
Limitaciones
- Los encabezados siguientes no se pueden anexar, invalidar ni eliminar:
Connection
,Content-Length
, ,Keep-Alive
,Transfer-Encoding
- El valor de dirección IP del cliente en el
X-Forwarded-For
encabezado no se puede eliminar. - El
Server
encabezado no se puede eliminar en las respuestas.
Ejemplos
Agregar encabezado, invalidar existente
<set-header name="some header name" exists-action="override">
<value>20</value>
</set-header>
Quitar encabezado
<set-header name="some header name" exists-action="delete" />
Reenvío de información contextual al servicio back-end
En este ejemplo se muestra cómo aplicar directivas en el nivel de API para proporcionar información contextual al servicio back-end.
<!-- 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>
Para obtener más información, consulte Policy expressions (Expresiones de política) y Context variable (Variable de contexto).
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Repositorio de área de juegos de directivas
- Kit de herramientas de directivas de Azure API Management
- Obtener ayuda de Copilot para crear, explicar y solucionar problemas de directivas