修改出站请求头

HTTP请求头是HTTP请求消息的组成部分,用于携带特定的请求参数并传递给服务器。通过配置回源HTTP请求头规则,可将特定参数传递给源站。边缘安全加速 ESA支持对回源HTTP请求头规则进行新增、修改和删除,以满足更多实际业务需求。

功能介绍

当客户端请求访问资源时,请求首先到达ESA。如果未命中ESA节点的缓存,ESA节点将携带出站HTTP请求头向源站发起回源请求获取数据。可以根据业务需求对出站HTTP请求头进行调整。ESA节点将获取到的资源返回客户端。

image

注意事项

同一条修改出站请求头规则配置里面,如果存在多个操作配置,则这些操作将会顺序执行,存在名称相同的请求头的情况下,后面的操作将会覆盖前面的操作。

示例一

  • 客户端请求里面携带了一个请求头test:123

  • 规则里面新增了一个请求头test:321

用户请求命中规则的情况下,执行结果是原始请求里面的请求头test:123被覆盖为test:321

示例二

  • 客户端请求里面携带了一个请求头test:123

  • 规则里面新增了一个请求头test:321,然后又配置了一条规则是删除请求头test

用户请求命中规则的情况下,执行结果是原始请求里面的请求头test:123被删除。

操作步骤

新增规则后,当用户发起资源访问请求时,ESA将根据规则的生效优先级依次进行匹配与执行。

  1. ESA控制台,选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择规则 > 转换规则

  3. 单击修改出站请求头页签,单击新增规则,填写规则名称

  4. 如果请求匹配以下规则...区域设置要匹配的用户请求特征,具体配置规则请参见规则表达式的组成

  5. 修改出站请求头区域,选择规则适用的资源类型操作方式,填入请求头名称请求头值

    说明

    同一条修改出站请求头规则配置里面,如果存在多个操作配置,则这些操作将会顺序执行,存在名称相同的请求头的情况下,后面的操作将会覆盖前面的操作。

    操作方式

    类型

    说明

    示例

    添加

    静态

    • 在回源请求中添加指定请求头。

    • 如果客户端请求中已经包含了同名请求头,则新添加的请求头将会覆盖客户端请求中的同名请求头。

    增加名称为x-code,值为key1的请求头,请填写:

    • 请求头名称x-code

    • 请求头值key1

    动态

    请求头值支持设置为一个表达式

    增加名称为True-Client-IP,值为ip.src的请求头,用于记录客户端的真实IP地址,请填写:

    • 请求头名称True-Client-IP

    • 请求头值ip.src

    变更

    静态

    在回源请求中变更指定请求头的值。

    修改回源请求中名称为x-code的请求头的值为key2,请填写:

    • 请求头名称x-code

    • 请求头值key2

    动态

    请求头值支持设置为一个表达式

    修改回源请求中名称为True-Client-IP的请求头,值为ip.src,将请求头的值变更为客户端的真实IP地址,请填写:

    • 请求头名称True-Client-IP

    • 请求头值ip.src

    删除

    在回源请求中删除所有与请求头名称匹配的参数值,无论是否有重复的请求头参数。

    删除名称为x-code的请求头,请填写请求头名称x-code

    说明
    • 禁止配置以ali-或者Ali-开头的请求头名称

    • 请求头值中可以配置多个值,用英文逗号,分隔。

    • 删除操作不区分静态模式和动态模式,效果一致。

    • 变更是对已存在的请求头进行修改,仅在原始请求头中存在对应名称的请求头时,变更操作才会生效。

  6. 单击确定

动态表达式示例

示例一

添加用于记录客户端的真实IP地址的请求头。

  • 请求头名称:True-Client-IP

  • 请求头值:ip.src

示例二

添加用于记录客户端IP地址对应国家代码的请求头。

  • 请求头名称:IP-Country-Code

  • 请求头值:ip.geoip.country

示例二

添加用于记录客户端IP地址对应省份代码的请求头。

  • 请求头名称:IP-Province-Code

  • 请求头值:ip.src.subdivision_1_iso_code

相关文档

规则相关的功能,在生效优先级、可重入性、生效颗粒度上存在差异,详细情况请查看规则相关功能的特性说明