边缘安全加速 ESA节点的出站响应头是HTTP响应消息头的组成部分,用于携带并传递特定的响应参数给客户端。通过配置ESA节点的出站响应头,可实现资源返回时的响应头控制。ESA支持对出站响应头规则进行新增、修改和删除,以满足更多实际业务需求。
功能介绍
当客户端请求访问资源时,请求首先到达ESA。如果未命中ESA节点的缓存,将向源站发起回源请求以获取数据。在源站返回数据后,ESA节点将根据您配置的响应头规则对原始响应进行修改(例如:添加、替换或删除特定字段),最终将包含响应头的完整资源返回给客户端,以实现跨域访问控制、缓存策略优化等业务需求。
应用场景
告知客户端ESA响应文件的资源类型:如添加响应头
Content-Type: text/html,以明确告知客户端ESA响应文件的格式为HTML,并进行相应渲染处理。实现跨域资源访问:当用户请求ESA上某个域名的资源时,可以在ESA返回的响应消息中配置响应头
Access-Control-Allow-Origin,以实现跨域访问,请参考配置跨域资源共享。自定义响应行为:通过添加或修改自定义头部信息,可以根据业务需求调整客户端接收到的响应内容和格式,以实现特定功能或跟踪目的。
注意事项
在添加了多条配置的情况下,配置的执行顺序是按配置列表从上到下的顺序逐条执行,响应头名称相同的配置将被后续配置覆盖,因此最终结果可能与预期不符。
示例一
响应信息里面携带了一个响应头
test:123。规则里面新增了一个响应头
test:321。
响应信息命中规则的情况下,执行结果是原始响应里面的响应头test:123被覆盖为test:321。
示例二
响应信息里面携带了一个响应头
test:123。规则里面新增了一个响应头
test:321,然后又配置了一条规则是删除响应头test。
响应信息命中规则的情况下,执行结果是原始响应里面的响应头test:123被删除。
操作步骤
新增规则后,当用户发起资源访问请求时,ESA将根据规则的生效优先级依次进行匹配与执行。
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
选择修改响应头页签,单击ESA到客户端项,单击新增规则。

单击新增规则,在如果请求匹配以下规则...区域设置要匹配的用户请求特征,具体配置规则请参见规则表达式的组成。
在修改响应头区域,选择操作方式,写入响应头名称和响应头值后单击确定。
操作方式
类型
说明
示例
添加
静态
在返回客户端的响应中添加指定响应头。
如果客户端中的响应头已包含同名响应头,则新添加的响应头将覆盖该同名响应头。
增加名称为
x-code,值为key1的响应头,请填写:响应头名称:
x-code响应头值:
key1
动态
响应头值支持设置为一个表达式。
增加名称为
Client-Ip-Geo-Location,值为ip.geoip.country的响应头,用于记录客户端IP归属的地理位置对应的国家或地区,请填写:响应头名称:
Client-Ip-Geo-Location响应头值:
ip.geoip.country
变更
静态
在返回客户端的响应中变更指定响应头的值。
修改名称为
x-code的响应头,值为key2,请填写:响应头名称:
x-code响应头值:
key2
动态
响应头值支持设置为一个表达式。
修改名称为
Client-Ip-Geo-Location的响应头,值为ip.geoip.country,将响应头值变更为客户端IP归属的地理位置对应的国家或地区,请填写:响应头名称:
Client-Ip-Geo-Location响应头值:
ip.geoip.country
删除
在返回客户端的响应中删除所有与响应头名称匹配的参数值,无论是否有重复的响应头参数。
删除名称为
x-code的响应头,请填写响应头名称:x-code。说明禁止配置以
ali-inner或者ali-swift开头的响应头名称。响应头值中可以配置多个值,用英文逗号
,分隔。删除操作不区分静态模式和动态模式,效果一致。
变更是对已存在的响应头做修改,仅在原始响应头中存在对应名称的响应头时,变更操作才会生效。
配置示例:开启跨域资源共享
若使用OSS作为源站,OSS与ESA控制台同时配置CORS,ESA的配置将覆盖OSS的跨域设置。
针对所有请求生效
场景描述
允许当前站点(如example.com)下的所有请求均可跨域访问任意地址上的资源。
配置步骤
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择,在转换规则页面选择修改响应头页签,选择响应头位置为ESA到客户端,单击新增规则按钮。

在新增修改响应头规则页面根据业务需求填写相关字段。可参考以下填写:
规则名称:填写自定义规则名称,如
rule-cors-for-all。如果请求匹配以下规则...:设置规则条件,用于匹配和过滤客户端请求。本例中选择所有传入请求即可。
则执行…:设置修改响应头的规则执行动作,本例中填写:
类型:选择静态
操作方式:选择添加
响应头名称:输入
Access-Control-Allow-Origin响应头值:输入
*

配置效果
在进行任意跨域请求时,ESA都会在响应头中增加Access-Control-Allow-Origin:*,浏览器即可成功响应并展示跨域资源。

针对指定请求生效
场景描述
针对客户端请求中携带的origin标头的值包含域名example.com下的任意子域名,并且同时支持http协议和https协议,例如以下情况都允许跨域访问资源:
origin:http://www.example.comorigin:https://www.example.comorigin:http://image.example.comorigin:https://image.example.com
在响应中添加CORS头,CORS响应头内容与请求头中的origin一致。
配置步骤
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择,在转换规则页面选择修改响应头页签,选择响应头位置为ESA到客户端,单击新增规则按钮。

在新增修改响应头规则页面参考以下填写:
规则名称:填写自定义规则名称,如
rule-cors-origin。如果请求匹配以下规则...:设置规则条件,用于匹配和过滤客户端请求,只对满足特定条件的请求执行添加响应头的操作。本例中填写
标头 origin的值 与正则表达式匹配 ^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$。也可直接编辑表达式如下:
(http.request.headers["origin"] matches "^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$")说明若您的套餐不支持使用正则表达式匹配,可以使用运算符
等于其中任意一个来匹配,并枚举出允许跨域的origin标头值。也可直接编辑表达式如下:
(http.request.headers["origin"] in {"http://www.example.com" "https://www.example.com" "http://image.example.com" "https://image.example.com"})
则执行…:设置修改响应头的规则执行动作,本例中填写:
类型:选择动态
操作方式:选择添加
响应头名称:输入
Access-Control-Allow-Origin响应头值:输入
http.request.headers["origin"]

配置效果
在进行跨域请求时,请求中的origin头符合规则时,则ESA将在响应头中增加Access-Control-Allow-Origin标头,标头值内容与客户端请求中携带的Origin标头的值相同,浏览器即可成展示跨域资源。

响应头参数说明
响应头参数 | 说明 | 示例 |
自定义 | 支持添加自定义响应头。自定义响应头名称要求如下:
| Test-Header |
Cache-Control | 指定客户端程序请求和响应遵循的缓存机制。 | no-cache |
Content-Disposition | 指定客户端程序将请求所得的内容存为一个文件时提供的默认文件名。 | examplefile.txt |
Content-Type | 指定客户端程序响应对象的内容类型。 | text/plain |
Pragma | Pragma 是一个在 HTTP/1.0 中规定的通用首部,这个首部通常用于在服务器的响应中定义客户端对文件的缓存行为。 | no-cache |
Access-Control-Allow-Origin | 指定哪些源可以访问资源。它是跨域资源共享(
|
|
Access-Control-Allow-Methods | 指定允许的跨域请求方法。多个方法用英文逗号 | POST,GET |
Access-Control-Allow-Headers | 指定允许的跨域请求字段。 | X-Custom-Header |
Access-Control-Expose-Headers | 指定允许访问的自定义头信息。 | Content-Length |
Access-Control-Allow-Credentials | 该响应头指示是否允许将请求的响应暴露给页面。
| true |
Access-Control-Max-Age | 指定客户端程序对特定资源的预请求返回结果的缓存时间,单位为秒。 | 600 |
相关文档
规则相关的功能,在生效优先级、可重入性、生效颗粒度上存在差异,详细情况请查看规则相关功能的特性说明。

