You need to enable JavaScript to run this app.
导航
配置自定义HTTP响应头
最近更新时间:2024.05.11 14:08:44首次发布时间:2022.08.01 10:49:33

基本概念

HTTP 响应头是服务器在接收客户端请求后返回的响应元数据。这些元数据提供了关于响应的信息。例如:服务器类型、日期、内容类型等,这些不同的信息帮助客户端正确理解从服务器返回的数据。

操作背景

全站加速允许您为返回给客户端的响应配置HTTP响应头。当客户端请求某个加速域名下的资源时,全站加速将按照您设置的响应头参数返回响应。

说明

  • 例如,您的业务需要告知客户端:全站加速返回文件的格式是HTML格式。您可以在返回的响应信息中添加响应头Content-Type: text/html
  • 配置 HTTP 响应头的行为是对某个加速域名的操作。一旦指定域名的 HTTP 响应头被成功配置,无论何时全站加速向客户端返回响应消息,该域名下的所有资源都将遵循相同的 HTTP 响应头规则。
  • 配置 HTTP 响应头仅影响客户端(例如浏览器)接收响应消息后的行为,不会影响到边缘节点的缓存行为。

操作步骤

  1. 登录全站加速控制台
  2. 点击左侧导航栏 域名管理 ,进入 域名管理 页面后,点击待配置的加速域名名称。
    图片
  3. 在域名管理页面,点击 高级配置 ,再点击 编辑
    图片
  4. 高级配置 标签页,开启 HTTP 响应头 ,然后根据您的业务来配置 HTTP 响应头。更多信息参见参数解释。
    图片
  5. 点击 提交 完成 HTTP 响应头配置。

参数解释

说明

如果您配置的响应头与源站返回的头重复,那么源站返回的头会被您新配置的同名头覆盖。

字段

解释说明

操作类型

您可以对响应头进行如下操作:

  • 添加:在返回给客户端的响应消息中添加一个响应头。
  • 设置 :在返回给客户端的响应消息中对一个已有的响应头进行设置。
  • 删除 :在返回给客户端的响应消息中删除一个响应头。

响应头名称

  • 全站加速提供了常见的响应头,具体参见下表。全站加速不允许您自定义这些响应头参数。
  • 全站加速允许您自定义响应头参数,自定义响应头参数的具体规则如下:
    1. 不同响应头规则中的响应头参数不能重复。
    2. 自定义响应头参数的长度默认为1 - 100个字符。响应头参数由数字0 - 9、字符a - zA - Z,及连字符- 组成,连字符-不能出现在字符串的头部或者尾部。
    3. x-bdx-tt不能出现在自定义响应头参数的开头。
  • 无论字符串是大写、小写,还是大小写混合,全站加速不允许配置以下响应头字段:datecontent-encodingcontent-lengthlast-modifiedcontent-rangeset-cookievary

取值类型

常量

响应头参数为常量时,取值的长度为1 - 1000个字符,不支持中文。

变量

响应头参数为变量时,支持的取值和解释参见下表。

常见的响应头如下:

字段

解释说明

示例

Content-Disposition

客户端把请求所得的内容存为一个文件时,该参数告知客户端该文件的默认文件名。

dcdntest.txt

Content-Language

该参数表示返回资源(例如网页)使用的语言。

en-US

Access-Control-Allow-Origin

该参数告知客户端哪些源(域名、IP)的请求是被允许访问全站加速下的资源。即该参数指定了全站加速允许的跨域请求的来源。

  • 响应头的值可以配置为星号*时:
    • 表示任意来源的请求都被允许访问全站加速下的资源。
    • 不允许再配置其他值。
  • 响应头的值不是星号*时:
    • 您可配置一个或者多个值,可以是IP、域名、或者IP、域名混合。多个值之间请用英文逗号,分隔。
    • 响应头的值必须包含http:// 或者https://
    • 响应头的值中可以包含端口。
    • 响应头的值是域名时,可以是泛域名。
    • 响应头的值不能超过100个。
    • 单个响应头的值不能超过256个字符,不支持中文

说明

当对Access-Control-Allow-Origin 响应头的操作方式为设置、添加,且取值类型为常量时,允许进行跨域校验。跨域校验

  • 是:全站加速将对客户端请求做跨域校验,并根据校验结果响应Access-Control-Allow-Origin的值。跨域校验规则参见下文。
  • 否:全站加速不会校验客户端请求中携带的Origin头,只会固定响应您已配置的Access-Control-Allow-Origin值。

https://www.volcengine.com。

Access-Control-Allow-Headers

该参数告知客户端,跨域请求可以携带哪些头部。多个头部之间请用英文逗号,分隔。

X-Payment-Header

Access-Control-Allow-Methods

该参数告知客户端,跨域请求被允许使用的HTTP请求方法。

GET

Access-Control-Max-Age

该参数指定了客户端对一个资源的预检请求结果的缓存时间,单位为秒。

说明

  • 当浏览器发起一个跨域请求时,会先发送一个预检请求,以检查服务器是否允许实际的请求。您可以在预检请求的响应头中设置 Access-Control-Max-Age 来指定该请求的结果的可以被缓存多久。单位是秒。
  • 如果您设置了 Access-Control-Max-Age,浏览器将缓存预检请求的结果。在缓存的时间内,浏览器再次发起相同的跨域请求时,无需再发送预检请求,可以直接使用之前缓存的结果。

60

Access-Control-Expose-Headers

该参数告知客户端,响应中哪些头部可以被浏览器的脚本访问。多个头部之间请用英文逗号,分隔。

说明

默认情况下,跨域请求的响应中只会暴露默认的响应头。如果您希望在跨域请求的响应中暴露其他的响应头给浏览器的脚本使用,就需要使用Access-Control-Expose-Headers

Content-Length

Content-Type

该参数表示返回资源的类型。

text

Cache-Control

该参数告知客户端如何缓存全站加速返回的资源。

no-cache

Expires

该参数告知客户端全站加速返回的资源的过期时间。在过期时间之前,浏览器可以直接使用本地缓存而不需要再次访问 全站加速。

Mon, 13 Dec 2021 16:09:00 GMT

说明

当对Access-Control-Allow-Origin 响应头的操作方式为设置、添加,且取值类型为常量时,允许进行跨域校验。跨域校验选择 时,跨域校验规则如下:

  • Access-Control-Allow-Origin的值设置为 *时,全站加速固定返回 Access-Control-Allow-Origin:*
  • Access-Control-Allow-Origin 的值设置了单个或者多个值时:
    • 如果客户端请求头里携带的 Origin 参数值与您设置的任一个值精确匹配,那么全站加速就会响应对应的跨域头。
    • 如果客户端请求头里携带的 Origin 参数值与您设置的任一个值都未能精确匹配,那么全站加速不响应跨域头Access-Control-Allow-Origin
  • Access-Control-Allow-Origin的值设置为泛域名时,全站加速会校验客户端请求头中 Origin 值是否能匹配上您配置的泛域名。示例如下,你设置了 Access-Control-Allow-Origin:http://*.a.com,跨域校验为 时:
    • 对于客户端请求头Origin:http://demo.a.com,全站加速将会响应 Access-Control-Allow-Origin:http://demo.a.com
    • 对于客户端请求头Origin:http://demo.example.com,由于域名不匹配,全站加速将不响应跨域头Access-Control-Allow-Origin
    • 对于客户端请求头Origin:https://demo.a.com,由于您设置的是 HTTP 协议,客户端请求头的协议不匹配。全站加速将不响应跨域头Access-Control-Allow-Origin

HTTP 响应头取值类型为变量时,可选择的值如下:

字段

解释说明

示例

uri

客户端请求的 URI。如果 URI 本身包含参数,则问号?以及问号后面的参数将被删除。

/dir/volcano.php

request_uri

客户端请求的 URI。如果 URI 本身包含参数,则问号?以及问号后面的参数将被保留。

/dir/volcano.php?color=red&n=10

remote_addr

发送请求的客户端 IP 地址。

10.10.10.10

remote_port

客户端发送请求时所使用的端口号。

443

http_host

客户端请求头中的 host 字段的值。

volcengine.com:8080

args

客户端请求的 URL 中的参数query string。但不包含参数前的问号?

color=red&n=10

msec

边缘节点发送请求的时间。格式是十进制的 Unix 时间戳。

1650558396

scheme

客户端发送请求时使用的协议。

https