2.7 高级配置
2.7.1 HTTP header 配置(跨域请求)
HTTP header即HTTP消息头,是指在超文本传输协议(Hypertext Transfer
Protocol,HTTP)的请求和响应消息中的消息头部分,定义了HTTP传输过程中的具体 参数。
当您使用HTTP Header配置功能,用户请求加速域名下的资源时,可以在返回的响应 消息中添加您配置的消息头,以实现跨域访问等目的。
注意事项
由于HTTP header配置是针对域名,因此一旦配置生效,用户对该域名下任意一个资 源的响应消息中均会加入所配置的消息头。HTTP响应消息头配置仅会影响客户端(浏 览器)的响应行为,不影响CDN节点的缓存行为。
背景信息
华为云CDN支持以下几种HTTP响应消息头进行自定义取值。
● Content-Disposition
Content-disposition消息头用来激活客户端下载并指定所下载文件的名称。
服务端向客户端浏览器发送的文件,如果是浏览器支持的文件类型(如txt、jpg 等),则默认使用浏览器打开。如果该文件需要用户以附件形式下载并保存为指 定名称的文件,则可通过配置Content-disposition消息头实现。
说明
如果您使用了2022年1月1日以后创建的OBS桶作为源站,并且需要支持在线预览功能,您 要设置“Content-Disposition”的值为“inline”,详见如何在浏览器中在线预览OBS中的 对象?。
● Content-Language
Content-Language消息头用来指明向客户页面端提供的用户偏好语言或语言组 合,可以为不同身份用户定制不同的内容。
● Access-Control-Allow-Origin
Access-Control-Allow-Origin响应头携带了服务端验证后允许的跨域请求域名。
对于简单跨域请求而言,浏览器经此消息头可以确认是否返回所请求的资源内容 给客户端。对于预检请求而言,浏览器经此消息头可以确认是否可以向服务端发 起真正的跨域请求。
说明
为防止因浏览器缓存导致报跨域错误,跨域请求头“Access-Control-Allow-Origin”配置 完成后,请您及时清理浏览器缓存。
● Access-Control-Allow-Methods
Access-Control-Allow-Methods响应头携带了服务端验证后允许的跨域请求方 法。对于简单跨域请求而言,浏览器经此消息头可以确认是否返回所请求的资源 内容给客户端。对于预检请求而言,浏览器经此消息头可以确认是否可以向服务 端发起真正的跨域请求。
● Access-Control-Max-Age
Access-Control-Max-Age响应头携带了服务端允许的跨域预检请求结果允许缓存 的时间。浏览器经此消息头可以确认预检请求结果的缓存时间,在缓存有效期 内,浏览器可以使用缓存的预检请求结果判断是否向服务端发起跨域请求。缓存 的预检请求结果过期后,下次请求时浏览器需再次向服务端发送预检请求。
● Access-Control-Expose-Headers
Access-Control-Expose-Headers用于指定浏览器可以暴露给客户端的响应消息 头。您可以通过配置Access-Control-Expose-Headers自定义客户端可见的响应消
息头。浏览器默认客户端可见的响应头有:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。
● 自定义响应头
如果上述响应头不能满足您的业务需求,CDN支持自定义响应头配置,支持以字 母开头,字母、数字和短横杠(-)组合,长度1~100以内的自定义响应头名称。
操作步骤
5. 在HTTP header配置模块,单击“编辑”,系统弹出“配置HTTP header”对话 框,如下图所示。
6. 单击“添加”,选择对应响应头操作类型。
● HTTP响应头配置规则最多可配置10条。
7. 设置头部参数及取值。
参数 取值规则 取值样例
Content-disposition 激活客户端下载并指定所下 载文件的名称。
取值规则:常用配置如右侧 取值样例所示。
attachment;filenam e=FileName.xls
Content-Language 指定客户端响应页面的语 言。
取值规则:常用配置如右侧 取值样例所示。
zh-CN en-US
Access-Control-Allow-Origin 指定跨域请求时,允许访问 该资源的外域URL(即请求 来源)。
取值规则:
● 支持配置具体URL。
● URL长度不能超过256。
● 在配置指定域名时,需要 加上“http://” 或
“https://”前缀。
● 支持配置“*”,如果取 值为“*”,则不允许输 入其它URL。
样例1:
https://
www.example.com 样例2:
*
Access-Control-Allow-Methods 指定跨域请求时,允许使用 的HTTP请求方法。
取值规则:支持同时配置多 个请求方法,多个方法间用
“,”分割。
GET,POST,HEAD
参数 取值规则 取值样例
Access-Control-Max-Age 指定跨域请求时,客户端程
序对特定资源的预检请求返 回结果的缓存时间。
取值规则:取值单位为秒,
取值范围为:
1~1000000000。
86400
Access-Control-Expose-Headers 指定跨域请求时,客户端可 见的响应头部信息。
取值规则:支持同时配置多 个响应头,多个响应头间用
“,”分割。
Content-Length,
Content-Encoding
自定义响应头 跨域请求时,客户自定义的 响应头部信息。
取值规则:长度范围 1~256,支持字母、空格、
数字和特定字符(.-_*#!%&
+|^~'"/:;,=@?)。
x-testcdn
8. 单击“确定”,完成HTTP header配置。
限制条件
● 如果您的后台存在特殊配置,暂不支持配置Content-Type、Cache-Control、
Expires。
● 以下响应头仅支持修改,不支持删除:
Content-Base Content-Disposition Server Content-Language
● CDN暂不支持以下响应头配置:
A_Dynamic If-None-Match
Sec-WebSocket-Origin X-Forward-Peer Accept-Ranges If-Range
Sec-WebSocket-Protocol X-Forward-Type Age Keep-Alive
Sec-WebSocket-Version X-Forward-Uri Allow Key Set-Cookie X-Forwarded-For
Authentication-Info Last-Modified Tcp-Retrans X-IP-Region Authorization Link Title X-IP-Region-CN
X-Forward-Measured Location
Transfer-Encoding X-Ip-Blackwhite-List
Cdn-Qos Max-Forwards Upgrade X-Local-Ip Cdn-Server-Ip Meter Vary X-Log-Url Cdn-Src-Ip Mime-Version Via X-MAA-Alias Conf-Err-Host Negotiate
WWW-Authenticate X-MAA-Auth Conf-File Origin Warning X-Max-Conns Conf-File-List
Partition-Block-Size Ws-Hdr X-Mem-Url Conf-Option Pragma WsTag X-Mgr-Traffic Conf-Other
Proxy-Authenticate
X-Accelerator-Vary X-Miss-Rate-Limit
Connection
Proxy- Authentication-Info
X-Appa X-Miss-Times-Limit
Content-Encoding
Proxy-Authorization X-Appa-Origin X-No-Referer Content-Length
Proxy-Connection X-Black-List X-Query-Key Content-Location Proxy-Support X-Bwctrl-Limit X-Rate-Limit Content-MD5 Public X-Bwctrl-Para
X-Refresh-Pattern Content-Range Purge-Domain X-Cache X-Request-Id
Sec-WebSocket-Nonce Purge-Extra X-Cache-2 X-Request-Uri Date Range X-Cache-Lookup X-Request-Url Dynamic Request-Range X-Cacheable X-Resp-Time ETag Retry-After X-Cdn-Src-Port X-Rewrite-Url Error
Sec-WebSocket-Accept X-Client-Ip X-Squid-Error Expect
Sec-WebSocket-Draft X-DNS-Time X-Times-Limit If-Modified-Since
Sec-WebSocket-Extensions
X-Denyattack-Dynconf
X-Url-Blackwhite-List From
Sec-WebSocket-Key X-Error-Status X-Via-CDN
Front-End-Https
Sec-WebSocket-Key1 X-Error-URL X-White-List Host
Sec-WebSocket-Key2 X-Forward-Host -If-Match
Sec-WebSocket-Location X-Forward-Ip
-3 刷新预热
3.1 概述
CDN提供资源的缓存刷新和缓存预热功能。
● 缓存刷新:提交缓存刷新请求后,CDN节点的缓存内容将会被强制过期,当用户
向CDN节点请求资源时,CDN会直接回源站请求对应的资源。
● 缓存预热:提交缓存预热请求后,源站将会主动将对应的资源缓存到CDN节点,
用户就能直接从CDN节点获取到最新的资源。
前提条件
只有处于“已开启”和“配置中”状态且未被禁用的域名才能执行缓存刷新、缓存预 热操作。相关域名状态说明请参见查看域名基本信息。