修改入站响应头

可以选择修改、删除或添加从源站返回的响应头(如 Cache-ControlExpires),通过控制这些头部信息来优化缓存策略、保护用户安全,并提升对用户行为的洞察与体验定制能力。

背景介绍

该功能将根据预设规则对指定的传入响应标头进行修改。通过此功能添加的响应标头会在ESA服务器处理对象之前生效,因此若响应内容可被缓存,这些标头将随响应一同存入缓存中。这与修改出站响应头行为有明显区别:后者是在ESA服务器完成响应处理、从源站或缓存中获取完整响应后,才添加或修改响应标头,随后立即将响应发送给客户端。

image

操作步骤

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

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

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

  3. 单击修改入站响应头页签,单击新增规则,填写规则名称

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

  5. 修改入站响应头区域,选择操作方式,写入响应头名称响应头值

    操作方式

    类型

    说明

    示例

    添加

    静态

    • 在返回客户端的响应中添加指定响应头。

    • 如果客户端中的响应头已包含同名响应头,则新添加的响应头将覆盖该同名响应头。

    增加名称为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-或者Ali-开头的响应头名称

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

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

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

  6. 单击确定

响应头参数说明

响应头参数

说明

示例

自定义

支持添加自定义响应头。自定义响应头名称要求如下:

  • 由大小写字母、中划线-和数字组成。

  • 长度为1~100个字符。

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

指定哪些源可以访问资源。它是跨域资源共享(CORS,Cross-Origin Resource Sharing)机制的一部分,该机制允许服务器声明其资源是否可以被某个指定的源域名访问。该响应头的值支持以下类型:

  • 通配符 *:使用通配符表示允许任何源访问资源。这种方式非常宽松,适用于那些公开无需认证或授权即可访问的资源。不过,在生产环境中使用通配符时需要谨慎,因为它可能带来安全风险,比如跨站请求伪造攻击。

  • 单个指定源:你可以指定一个具体的源域名,表示仅允许该特定源访问资源。例如http://example.comhttps://api.example.com,这要求请求必须来自指定的源,否则将被拒绝。

  • *

  • http://www.aliyun.com

Access-Control-Allow-Methods

指定允许的跨域请求方法。多个方法用英文逗号,分隔。

POST,GET

Access-Control-Allow-Headers

指定允许的跨域请求字段。

X-Custom-Header

Access-Control-Expose-Headers

指定允许访问的自定义头信息。

Content-Length

Access-Control-Allow-Credentials

该响应头指示是否允许将请求的响应暴露给页面。

  • true:表示可以暴露。

  • 其他值:表示不可以暴露。

true

Access-Control-Max-Age

指定客户端程序对特定资源的预请求返回结果的缓存时间,单位为秒。

600

说明
  • 响应头值支持配置为*,表示任意来源。

  • 响应头值非*的情况下,支持配置单个或者多个IP、域名、或者IP和域名混合,相互间用英文,分隔。

  • 响应头值非*的情况下,必须包含协议头http:// 或者https://

  • 响应头值支持携带端口。

  • 响应头值支持泛域名。

相关文档

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