基本概念 | 描述 |
---|---|
Range | Range 是 HTTP 请求头的字段之一,标识了特定范围内的资源。Range 字段能够将客户端希望获取范围内的资源告知给服务器。如:Range: bytes=0-100就是请求该文件的前101个字节。 |
Range 回源 |
|
启动 Range 回源功能前后,节点回源的对比情况如下所示。
Range 回源功能是否启用 | 节点发生回源时的静态请求 |
---|---|
启用 | 按 1MB 分片回源。 |
关闭 | 遵循客户端的Range字段情况回源。
|
注意
对于动态请求,无论Range 回源功能是否启用,节点回源时将遵循客户端的Range字段情况回源。
源站在收到全站加速节点的回源请求时,根据 HTTP请求头 中的 Range 信息返回指定范围的数据给全站加速节点,减少回源流量消耗并提升源站对请求内容的响应速度,提高大文件分发效率。如果您的业务有此类需求,可以开启 Range 回源。
注意
在开启 Range 回源功能时,您需要确认源站已经支持 Range 请求,否则可能会导致回源失败。
您可以使用 curl
来判断源站是否支持 Range 请求。使用如下命令:curl -r 0-499 -I <URL>
。
说明
在上述命令中:
<URL>
是被请求的资源。-r 0-499
指定了请求内容的范围,表示请求内容的字节范围是从0到499。-I
选项发送 HEAD 请求,以仅获取响应的头部信息而不下载整个资源。当运行上述命令后,您可查看源站返回的响应头信息,其中包含响应的状态码。
如果您的回源目标为阿里云OSS,在您开启 Range 回源时,系统会提示您以下消息:
这是为了兼容阿里云 OSS 在处理 Range 请求时的行为。
点击选项 | 回源行为 |
---|---|
添加该请求头,并开启Range回源 | 系统会自动为您在回源 HTTP 请求中添加 x-oss-range-behavior:standard 的头。这样当 Range 的起始位置超出对象文件的尺寸时,阿里云OSS会返回“状态码 416”错误。 |
知晓风险,仅开启range回源 | 系统不会添加回源 HTTP 请求头信息,会仅仅开启 Range 回源。当用户请求的 Range 的起始位置超出对象文件大小时,阿里云 OSS 源站仍然会将整个对象发送给 DCDN,这可能会造成回源性能问题。 |