You need to enable JavaScript to run this app.
导航
配置 Range 回源
最近更新时间:2025.02.27 20:41:51首次发布时间:2023.09.05 15:38:55

基本概念

基本概念

描述

Range

Range 是 HTTP 请求头的字段之一,标识了特定范围内的资源。Range 字段能够将客户端希望获取范围内的资源告知给服务器。如:Range: bytes=0-100就是请求该文件的前101个字节。

Range 回源

  • 收到客户端的请求,如果边缘节点上未缓存资源或者缓存的资源已过期,边缘节点会将请求路由到源站来获取资源。
  • 如果启用了 Range 回源 功能,此时回源的 HTTP 请求中携带了 Range 字段。在收到了回源请求后,源站服务器会根据 HTTP 请求头中的 Range 字段返回指定范围的数据给边缘节点。
  • 由于系统处理的是一定范围的资源,Range回源功能可以提高内容分发效率、提高缓存的命中率、减少获取内容所消耗的流量、减少源站的资源占用,并提升源站对请求内容的响应速度。

启动 Range 回源功能前后,节点回源的对比情况如下所示。

Range 回源功能是否启用

节点发生回源时的静态请求

启用

按 1MB 分片回源。

关闭

遵循客户端的Range字段情况回源。

  • 客户端不带Range字段:按照请求完整文件回源。
  • 客户端带Range字段:按照请求的范围进行回源。

注意

对于动态请求,无论Range 回源功能是否启用,节点回源时将遵循客户端的Range字段情况回源。

操作背景

源站在收到全站加速节点的回源请求时,根据 HTTP请求头 中的 Range 信息返回指定范围的数据给全站加速节点,减少回源流量消耗并提升源站对请求内容的响应速度,提高大文件分发效率。如果您的业务有此类需求,可以开启 Range 回源。

注意

在开启 Range 回源功能时,您需要确认源站已经支持 Range 请求,否则可能会导致回源失败。

判断源站是否支持 Range 请求

您可以使用 curl来判断源站是否支持 Range 请求。使用如下命令:curl -r 0-499 -I <URL>

说明

在上述命令中:

  • <URL>是被请求的资源。
  • -r 0-499指定了请求内容的范围,表示请求内容的字节范围是从0到499。
  • 使用-I选项发送 HEAD 请求,以仅获取响应的头部信息而不下载整个资源。

当运行上述命令后,您可查看源站返回的响应头信息,其中包含响应的状态码。

  • 响应的状态码是206,表示源站支持 Range 请求,并返回了指定范围的资源。
  • 响应的状态码是200,表示源站不支持 Range 请求,会返回完整的资源而不是指定范围的资源。
  • 响应的状态码是416,表示源站理解了 Range 请求,但无法满足请求。

操作步骤

  1. 登录全站加速控制台
  2. 点击左侧导航栏 域名管理 ,进入 域名管理 页面后,点击待配置的加速域名名称。
    图片
  3. 域名管理页面,点击 回源配置 ,再点击 编辑
    图片
  4. 回源配置 标签页,设置 Range 回源 为开启。
    图片
  5. 点击 提交 完成开启 Range 回源功能。

其他注意事项

如果您的回源目标为阿里云OSS,在您开启 Range 回源时,系统会提示您以下消息:
图片
这是为了兼容阿里云 OSS 在处理 Range 请求时的行为。

点击选项回源行为

添加该请求头,并开启Range回源

系统会自动为您在回源 HTTP 请求中添加 x-oss-range-behavior:standard 的头。这样当 Range 的起始位置超出对象文件的尺寸时,阿里云OSS会返回“状态码 416”错误。
关于 OSS 处理超出 Range 请求的具体行为,请参考阿里云文档

知晓风险,仅开启range回源系统不会添加回源 HTTP 请求头信息,会仅仅开启 Range 回源。当用户请求的 Range 的起始位置超出对象文件大小时,阿里云 OSS 源站仍然会将整个对象发送给 DCDN,这可能会造成回源性能问题。