HTTP请求头是HTTP请求消息的组成部分,用于携带特定的请求参数并传递给服务器。通过配置回源HTTP请求头规则,可将特定参数传递给源站。边缘安全加速 ESA支持对回源HTTP请求头规则进行新增、修改和删除,以满足更多实际业务需求。
功能介绍
当客户端请求访问资源时,请求首先到达ESA。如果未命中ESA节点的缓存,ESA节点将携带出站HTTP请求头向源站发起回源请求获取数据。可以根据业务需求对出站HTTP请求头进行调整:
注意事项
生效时机:本功能仅在请求未命中ESA节点缓存,需要向源站服务器请求内容时(即回源时)才会触发。对于已命中缓存并直接由ESA节点响应的请求,此规则不会执行。
执行顺序:在同一条规则中,如果配置了多个操作,它们将按照从上到下的顺序依次执行。如果存在对同名请求头的操作,后执行的操作结果会覆盖先执行的操作结果。如在原始客户端请求里面携带了一个请求头
test:123,规则里面新增了一个请求头test:321,然后又配置了一条规则是删除请求头test。那么在用户请求命中规则的情况下,执行结果是原始请求里面的请求头test:123被删除。
操作步骤
新增规则后,当用户发起资源访问请求时,ESA将根据规则的生效优先级依次进行匹配与执行。
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
单击修改请求头页签,选择ESA到源站项,单击新增规则。

在新增修改请求头规则区域,填写:
规则名称:填写自定义规则名称
如果请求匹配以下规则...:选择该规则将匹配的请求特征。
所有传入请求:表示该规则将应用于当前站点下的所有请求。
自定义规则:表示该规则仅应用于与自定义表达式匹配的流量。可以通过控件组合配置自定义的流量筛选条件。
修改请求头:表示符合特征的请求将执行的动作。
操作方式
类型
说明
示例
添加
静态
在回源请求中添加指定请求头。
如果客户端请求中已经包含了同名请求头,则新添加的请求头将会覆盖客户端请求中的同名请求头。
增加名称为
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-开头的请求头名称。请求头值中可以配置多个值,用英文逗号
,分隔。删除操作不区分静态模式和动态模式,效果一致。
变更是对已存在的请求头进行修改,仅在原始请求头中存在对应名称的请求头时,变更操作才会生效。
同一条规则配置中,如果存在多个操作配置,则这些操作将会顺序执行,存在名称相同的请求头的情况下,后面的操作将会覆盖前面的操作。
动态表达式配置示例
添加客户端真实IP地址
场景
为所有请求添加用于记录客户端的真实IP地址的请求头。
操作步骤
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
单击修改请求头页签,选择ESA到源站项,单击新增规则。

在新增修改请求头规则区域,填写:
规则名称:填写自定义规则名称
add-client-ip-out。如果请求匹配以下规则...:选择所有传入请求,表示该规则将应用于当前站点下的所有请求。
修改请求头:
类型:动态
操作方式:添加
请求头名称:
True-Client-IP-OUT请求头值:
ip.src

效果验证
配置前:不携带客户端真实IP。

配置后:通过true-client-ip-out标头携带客户端真实IP。

添加客户端IP地址对应国家代码
场景
为所有来自非中国香港的请求添加用于记录客户端IP地址对应国家代码的请求头。
操作步骤
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
单击修改请求头页签,选择ESA到源站项,单击新增规则。

在新增修改请求头规则区域,填写:
规则名称:填写自定义规则名称
add-client-country。如果请求匹配以下规则...:选择自定义规则,填写
国家/地区 不等于 中国香港。也可直接编辑表达式如下:
(ip.geoip.country ne "HK")修改请求头:
类型:动态
操作方式:添加
请求头名称:
IP-Country-Code请求头值:
ip.geoip.country

效果验证
配置前:不携带客户端IP对应的国家信息。

配置后:通过ip-country-code标头携带客户端IP对应的国家代码。

添加客户端IP地址对应省份代码
场景
为访问URI为/content的请求添加用于记录客户端IP地址对应省份代码的请求头。
操作步骤
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
单击修改请求头页签,选择ESA到源站项,单击新增规则。

在新增修改请求头规则区域,填写:
规则名称:填写自定义规则名称
add-client-province。如果请求匹配以下规则...:选择自定义规则,填写
URI路径 等于 /content。也可直接编辑表达式如下:
(http.request.uri.path eq "/content")修改请求头:
类型:动态
操作方式:添加
请求头名称:
IP-Province-Code请求头值:
ip.src.subdivision_1_iso_code

效果验证
配置前:不携带客户端IP对应的省份信息。

配置后:通过ip-province-code标头携带客户端IP对应的省份代码。

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