Range回源,指全站加速节点在回源的HTTP请求里面携带了Range信息,源站在收到全站加速节点的回源请求时,根据HTTP请求头中的Range信息返回指定范围的内容数据给全站加速节点。Range回源可有效提高文件分发效率,可以提高缓存命中率,减少回源流量消耗和源站压力,并且提升资源响应速度。
背景信息
Range是HTTP请求头之一,可用来指定需获取的内容的范围。例如,Range: bytes=0-100
表示回源请求该文件的前101个字节的数据内容。
开启Range回源功能后,全站加速收到用户的请求时,如果全站加速节点上未缓存该资源或资源已过期,全站加速节点回源会采用Range请求,从源站分段获取用户需要的部分资源并缓存到全站加速节点上。
开启Range回源的工作原理如下图所示:

注意事项
开启Range回源前需确认源站是否支持Range请求,即HTTP请求头中包含Range字段,并且源站能够响应正确的206文件分片。如果源站不支持Range请求,开启Range回源将导致资源无法缓存。
操作步骤
- 登录DCDN控制台。
- 在左侧导航栏,单击域名管理。
- 在域名管理页面,单击目标域名对应的配置。
- 在指定域名的左侧导航栏,单击回源配置。
- 在回源配置页签下找到Range回源。
- 打开或关闭Range回源开关。
Range回源 具体描述 示例 开启 当您需要访问资源文件指定范围内的部分内容时,为了提高资源响应效率,则需要开启Range回源。开启Range回源请求回源站后,源站需要依据Range,响应文件的字节范围,同时全站加速节点也会向客户端响应相应字节范围的内容。 如果客户端向源站服务器的请求中含有 range:0~100
,则源站收到的请求中也会含有range:0~100
。源站响应全站加速节点,全站加速节点响应客户端字节范围为0~100,共101个字节。关闭 当您需要访问资源文件的全部内容时,则需要关闭Range回源。关闭Range回源后,全站加速上层节点会向源站请求全部的文件,由于客户端收到Range定义的字节后自动断开HTTP连接,请求的文件没有缓存到全站加速节点上,最终导致缓存命中率较低,并且回源流量较大。 如果客户端向源站服务器的请求中含有 range:0~100
,则源站端收到的请求中没有Range这个参数。源站响应全站加速节点完整文件,全站加速节点响应给客户端的就是101个字节,由于链接断开,会导致该文件没有缓存到全站加速节点上。
HTTP Range范围超出有效区间的兼容性配置
当阿里云OSS作为源站时,默认情况下,如果HTTP Range请求不合法或者指定范围超出有效区间,会导致Range不生效,响应返回值为200,并传送整个Object内容,此时会影响回源获取文件的响应速度。
为了解决该问题,阿里云OSS产品提供了兼容性配置方式,请参见如何通过HTTP Range请求分段获取OSS资源。通过增加回源HTTP请求头
x-oss-range-behavior:standard
,可以改变指定HTTP Range范围超出有效区间时OSS的行为。说明
- 建议在大文件(平均单个文件大小在20 MB以上)内容分发场景下,DCDN回源OSS的配置中都进行该项配置。
- 如果在阿里云OSS源站上开启了访问鉴权功能,并且由客户端来实现回源请求的签算,那么客户端在签算的时候需要把回源请求头
x-oss-range-behavior:standard
加入签算(由于阿里云OSS在计算签名的时候,会将所有带x-oss-
前缀的请求头都加入计算,如果客户端签算的时候没有把x-oss-range-behavior:standard
加入签算,会导致阿里云OSS源站签算不一致,拒绝回源请求)。