You need to enable JavaScript to run this app.
导航
HTTP 响应头设置
最近更新时间:2025.10.27 10:41:15首次发布时间:2022.02.09 10:17:15
复制全文
我的收藏
有用
有用
无用
无用

本文档介绍如何在火山引擎内容分发网络(CDN)中配置 HTTP 响应头。

默认情况下,在对用户请求的响应中,CDN 会包含源站响应中的所有头部。您可以配置 CDN 在用户请求的响应中所包含的头部。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
  4. 定位 HTTP 响应头设置 模块。
    • 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 缓存配置 标签页中定位 HTTP 响应头设置 模块。
    • 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 缓存配置 > HTTP 响应头设置。如果该模块置灰,点击模块右边的 +
      关于新旧版域名管理页面的区别,参见 新版域名配置
  5. HTTP 响应头设置 模块中,点击 新增规则。您最多可以添加 50 条规则。
  6. 参照文档下方的 配置说明 对该规则进行配置。
  7. 配置完成后,点击 提交编辑

Image

配置说明

配置

说明

配置类型

表示一个操作类型。该配置有以下选项:

  • 设置:表示设置一个头部。设置操作包括添加与修改。如果源站响应中已包含该头部,该头部的值会被覆盖。如果源站响应中没有包含该头部,该头部会被添加。
  • 删除:表示删除一个头部。

头部名称

表示需要设置或者删除的一个头部。头部名称是大小写不敏感的。您可以从下拉列表中选择一个常用头部,参见 常用头部。除了 注意事项 中列出的那些头部名称之外,您可以输入任意一个头部名称。头部名称不能超过 1,024 个字符,不能包含以下字符:

  • 汉字、下划线(_)、空格、双引号(")、冒号(:)

取值方式

对于您在 头部名称 中指定头部,该配置表示该头部值的类型,有以下选项:

  • 常量:表示该头部值是一个字符串。
  • 变量:表示该头部值来自一个变量。
  • 自定义:表示该头部值是变量与字符串拼接后的一个字符串。

头部取值

表示您在 头部名称 中指定头部的取值。

  • 如果 取值方式常量,您需要输入一个字符串。该字符串的长度不能超过 1,024 个字符,不能包含以下字符:
    • 汉字、下划线(_)、空格、双引号(")、冒号(:)
  • 如果 取值方式变量,您需要从列表中选择一个变量。参见 变量列表
  • 如果 取值方式自定义,您需要输入由变量和字符串拼接后的一个字符串。变量需要包裹在 {} 中,由 $ 开头。例如 bind${remote_addr}to${host}done

如果 头部名称Access-Control-Allow-Origin,您需要在 头部取值 中指定来源 IP 和来源域名,端口是可选的,域名可以是泛域名。多个来源 IP 和来源域名之间以逗号(,)分隔。建议您指定的来源 IP 和来源域名以 http:// 或者 https:// 开头。

跨域校验

表示是否需要 CDN 校验用户请求头中的 Origin 头部。该配置仅在以下情况下会出现:

  • 头部名称Access-Control-Allow-Origin,并且 取值方式常量

该配置的设置说明如下:

  • 启用:表示 CDN 会校验 Origin 头部 。
    • CDN 会将用户请求中的 Origin 头部值与 Access-Control-Allow-Origin 的配置值做精确匹配。如果两者不匹配,则校验失败。此时,CDN 在响应中不会包含 Access-Control-Allow-Origin 头部。用户请求会失败。
    • 如果两者匹配,则校验成功。此时,CDN 在响应中会包含 Access-Control-Allow-Origin 头部,头部值就是用户请求中的 Origin 头部值。
    • 如果 Access-Control-Allow-Origin 的配置值包含泛域名,则 CDN 会将 Origin 中的 host 与泛域名匹配,对 Origin 中的其余部分做精确匹配。
  • 禁用:表示 CDN 不会校验 Origin 头部,由客户端浏览器判断跨域请求是否成功。CDN 在响应中始终会包含 Access-Control-Allow-Origin 头部,头部值就是您对 Access-Control-Allow-Origin 配置的值。

说明

  • 如果您设置 Access-Control-Allow-Origin 的值为 *,无论 跨域校验 是否启用,CDN 在响应中始终设置 Access-Control-Allow-Origin: *
  • 如果您设置 Access-Control-Allow-Origin 的值为多个以逗号(,)分隔的条目,您必须设置 跨域校验 为开启。不然,客户端浏览器会提示 "Access-Control-Allow-Origin 只允许一个值" 的错误,判定跨域请求失败。
  • 如果您设置的 Access-Control-Allow-Origin 值中包含泛域名,并且 跨域校验 是启用,CDN 也会检查请求中的 Origin 头部值是否匹配这个泛域名。如果 Origin 头部值不匹配该泛域名,也不匹配 Access-Control-Allow-Origin 值中的其他域名,则校验失败。

变量列表

CDN 提供了以下变量。

变量名称

说明

示例

raw_uri

表示客户端请求 URL 中的路径。

/dir/volcano.php

request_uri

表示客户端请求 URL 中的路径和查询字符串(query string)。

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

remote_addr

表示发起本次请求的客户端的 IP 地址。

10.10.10.10

remote_port

表示发起本次请求的客户端的端口。

5936

host

表示客户端请求中 host 头部的值。

需要留意的是,CDN 在处理请求时可能会修改该头部的值。因此,不建议您使用该头部,而是使用 http_host

www.example.com:8080

http_host

表示客户端请求中 host 头部的值。该头部值不会被 CDN 修改。

args

表示客户端请求 URL 中的查询字符串。

color=red&n=10

msec

表示 CDN 设置响应头的时间,格式是 Unix 时间戳,精确到毫秒。该时间戳接近首包的响应时间。

1704444754.917

scheme

表示客户端使用的协议。

https

cdn_cache_status

表示请求是否命中缓存。

  • edge_hit:表示请求命中了边缘节点的缓存。
  • parent_hit:表示请求命中了回源节点的缓存。
  • miss:表示请求没有命中缓存。

edge_hit

常用头部

CDN 提供了以下常用的头部。

说明

这些头部是标准的 HTTP 响应头。如果响应头的值是合法的,客户端浏览器会根据响应头做相应的操作。

头部名称

说明

示例

Access-Control-Allow-Origin

指定允许访问您站点资源的来源(origin)。

  • 多个来源使用逗号(,)分隔。
  • 您可以指定 *,表示任意来源。
  • 来源中的 host 可以是 IP 地址,也可以是域名。域名可以是泛域名。
  • 来源可以包含端口。
  • 如果您指定的来源不是 * 并且 跨域校验 为启用,则来源必须符合 URL 规范,也就是说来源必须包含 scheme 和 host。

示例一
*

示例二
https://www.another-site.com:448,http://10.10.10.10,https://*.example.com

Access-Control-Allow-Methods

指定跨域请求允许使用的 HTTP 请求方法。多个方法使用逗号(,)分隔。

GET

Access-Control-Allow-Headers

指定跨域请求允许包含的 HTTP 请求头。多个请求头使用逗号(,)分隔。

X-Custom-Header

Access-Control-Expose-Headers

指定在客户端运行的脚本所允许访问的响应头。多个响应头使用逗号(,)分隔。

默认情况下,客户端脚本允许访问的响应头有 Cache-ControlContent-LanguageContent-TypeExpiresLast-Modified。如果您需要客户端脚本访问更多的响应头,可以在该头部中指定。

Content-Encoding

Access-Control-Allow-Credentials

指定跨域请求是否需要包含鉴权信息。鉴权信息包括 cookie,鉴权请求头或客户端 TLS 证书。

true

Access-Control-Max-Age

指定跨域请求时,客户端对请求内容发起的预检请求的缓存时长。单位是秒。在缓存过期前,客户端不用再次发送预检请求。

3600

Cache-Control

对于 CDN 返回的内容,指定该内容在客户端的缓存方式。

max-age=3600

Content-Disposition

指示 CDN 返回给客户端的内容是以下载的方式提供。并指定下载的文件名。

attachment;filename=Demo.xlsx

Content-Language

指示 CDN 返回给客户端的内容语言。

zh-CN

Content-Type

指示 CDN 返回给客户端的内容类型。

text/plain

Pragma

对于 HTTP/1.0,指示 CDN 响应在客户端的缓存方式。头部值只能是 no-cache,指示客户端不要缓存 CDN 的响应。

no-cache

注意事项

您设置的响应头不能是以下头部。

  • access-check
  • server-timing
  • via
  • x-request-ip
  • x-tt-trace-tag
  • x-bdcdn-logid
  • byte-error-code
  • x-bdcdn-cache-status