视频点播支持在域名管理中配置 HTTP 响应头。本文为您介绍如何在视频点播中配置 HTTP 响应头字段的功能介绍和操作步骤。
默认情况下,缓存节点在响应用户请求时,会透传源站的响应头。在视频点播中,您可以对响应头进行以下操作,以实现特定的功能。
X-Test:123,但是源站响应头中已存在字段 x-test:456。此时,缓存节点的响应头中该字段会更新为 x-test:123。在您设置字段时,可以输入任意字段或者从列表中选择一个常用头部。但是视频点播不支持设置某些字段,具体参见注意事项。
HTTP 响应头设置适用于点播加速域名、自定义源站加速域名和封面加速域名。
登录视频点播控制台,进入空间。
选择左侧导航栏分发加速 > 域名管理,进入域名管理页面。
根据您的域名类型,在域名列表中找到您需要配置的域名,单击操作列的配置按钮。
进入加速域名配置页面,选择高级配置页签。
单击页面下方的修改配置按钮,在 HTTP 响应头设置下方,根据自身业务需求,单击新增按钮,进行规则配置。规则的详细说明如下表所示。
说明
您最多可以添加 50 条规则。
配置 | 说明 |
|---|---|
配置类型 | 表示一个操作类型。该配置有以下选项:
|
头部名称 | 表示需要设置或者删除的一个头部。头部名称是大小写不敏感的。您可以从下拉列表中选择一个常用头部,参见常用头部。除了注意事项中列出的那些头部名称之外,您可以输入任意一个头部名称。头部名称不能超过 1,024 个字符,不能包含以下字符:
|
取值方式 | 对于您在 头部名称 中指定的头部,该配置表示该头部值的类型,有以下选项:
|
头部取值 | 表示您在 头部名称 中指定头部的取值。
如果 头部名称 是 |
跨域校验 | 此配置项决定 CDN 是否根据请求头中的
启用 跨域校验 后,CDN 的处理逻辑如下:
如果不启用 跨域校验,CDN 不会检查请求中的 说明
|
完成配置后,单击保存配置按钮。
CDN 提供了以下变量。
变量名称 | 说明 | 示例 |
|---|---|---|
raw_uri | 表示客户端请求 URL 中的路径。 |
|
request_uri | 表示客户端请求 URL 中的路径和查询字符串(query string)。 |
|
remote_addr | 表示发起本次请求的客户端的 IP 地址。 |
|
remote_port | 表示发起本次请求的客户端的端口。 |
|
host | 表示客户端请求中 host 头部的值。 需要留意的是,CDN 在处理请求时可能会修改该头部的值。因此,不建议您使用该头部,而是使用 |
|
http_host | 表示客户端请求中 host 头部的值。该头部值不会被 CDN 修改。 | |
args | 表示客户端请求 URL 中的查询字符串。 |
|
msec | 表示 CDN 设置响应头的时间,格式是 Unix 时间戳,精确到毫秒。该时间戳接近首包的响应时间。 |
|
scheme | 表示客户端使用的协议。 |
|
cdn_cache_status | 表示请求是否命中缓存。
|
|
response_time | 表示 CDN 处理请求的时长,单位是毫秒。请求处理时长是从 CDN 收到用户请求的第一个字节,到开始响应第一个字节所经过的时间。 |
|
CDN 提供了以下常用的头部。
说明
这些头部是标准的 HTTP 响应头。如果响应头的值是合法的,客户端浏览器会根据响应头做相应的操作。
头部名称 | 说明 | 示例 |
|---|---|---|
Access-Control-Allow-Origin | 指定允许访问您站点资源的来源(origin)。
| 示例一 |
Access-Control-Allow-Methods | 指定跨域请求允许使用的 HTTP 请求方法。多个方法使用逗号(,)分隔。 |
|
Access-Control-Allow-Headers | 指定跨域请求允许包含的 HTTP 请求头。多个请求头使用逗号(,)分隔。 |
|
Access-Control-Expose-Headers | 指定在客户端运行的脚本所允许访问的响应头。多个响应头使用逗号(,)分隔。 |
|
Access-Control-Allow-Credentials | 指定跨域请求是否需要包含鉴权信息。鉴权信息包括 cookie,鉴权请求头或客户端 TLS 证书。 |
|
Access-Control-Max-Age | 指定跨域请求时,客户端对请求内容发起的预检请求的缓存时长。单位是秒。在缓存过期前,客户端不用再次发送预检请求。 |
|
Cache-Control | 对于 CDN 返回的内容,指定该内容在客户端的缓存方式。 |
|
Content-Disposition | 指示 CDN 返回给客户端的内容是以下载的方式提供,并指定下载的文件名。 您可以结合取值方式为“自定义”和变量 |
动态命名示例: |
Content-Language | 指示 CDN 返回给客户端的内容语言。 |
|
Content-Type | 指示 CDN 返回给客户端的内容类型。 |
|
Pragma | 对于 HTTP/1.0,指示 CDN 响应在客户端的缓存方式。头部值只能是 |
|
您设置的响应头不能是以下头部。
当您希望通过 URL 中的查询参数动态控制客户端(如浏览器)保存的文件名时,可以通过配置自定义的 Content-Disposition HTTP 响应头来实现。相比部分源站(例如 TOS)通过 response-content-disposition 参数改写响应头的方式,在 CDN 层改写不依赖源站是否支持该能力,配置更统一、生效更可控。
假设您希望客户端通过 URL 请求 http://example.com/image.jpg?rename=new_name.jpg 时,浏览器保存的文件名为 new_name.jpg,可以参考以下配置:
Content-Disposition。attachment;filename=${arg_rename}。(其中 ${arg_rename} 对应提取 Query 中的 rename 参数值)。说明
缓存键配置注意事项:若您依赖请求参数(如 rename)进行文件重命名处理,且希望配置在源站层面生效或不希望干扰缓存,建议合理规划您的缓存键值规则。
若不需要源站参与响应头构建,在 CDN 侧完成配置后,即使缓存键忽略了 rename 参数,也能实现正确的文件下载重命名。