You need to enable JavaScript to run this app.
导航
Multi Range
最近更新时间:2025.10.27 10:41:18首次发布时间:2024.07.25 17:02:36
复制全文
我的收藏
有用
有用
无用
无用

本文档介绍火山引擎内容分发网络中(CDN)对用户请求中多重范围(Multi-range) 的支持。

概述

在 HTTP 请求中,您可以在 Range 头部中指定获取请求文件的多个分片。例如,Range 头部可以是 Range: bytes=0-50, 30-80

CDN 对 Multi-range 的支持

默认情况下,CDN 不支持 multi-range。当收到一个 multi-range 的请求时,CDN 会响应 416 状态码。要使 CDN 支持 multi-range,您可以在 CDN 中启用该特性。Multi-range 启用后,用户请求中最多可以指定 32 个分片。

说明

Multi-range 启用后,如果用户请求中的任何一个分片与请求文件没有交集,CDN 不会返回任何分片。响应状态码是 416。

示例:您站点上的一个文件的大小是 100 字节。CDN 收到该文件一个 multi-range 的请求,Range 头部值是 bytes=0-30, 200-300。在这个情况下,CDN 不会返回任何分片。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
  4. 定位 Multi Range 模块。
    • 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 缓存配置 标签页中定位 Multi Range 模块。
    • 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 缓存配置 > Multi Range。如果该模块置灰,点击模块右边的 +
      关于新旧版域名管理页面的区别,参见 新版域名配置
  5. Multi Range 模块中,设置 状态 为启用。
  6. 点击 提交编辑

Image

更多信息

CDN 对 Multi-range 请求的响应

如果请求成功,CDN 会返回 206 响应状态码,并且响应中包含以下头部 Content-Type: multipart/byteranges; boundary=xxxxxxxxxxxxx。响应正文中会包含所有请求的分片,每个分片有自己的 Content-TypeContent-Range 头部,并且是以 boundary 头部的值分隔的。

说明

在响应正文中,每个分片前都有一个空行。参见下方的响应示例。

请求示例

curl http://www.example.com/ -v -H "Range: bytes=0-10, 20-50"

响应示例
响应头

HTTP/1.1 206 Partial Content
Server: Byte-nginx
Content-Type: multipart/byteranges; boundary=cfdc7e2afe8
Content-Length: 357

响应正文

空行
--cfdc7e2afe8
Content-Range: bytes 0-10/612
Content-Type: text/html

<!DOCTYPE h
空行
--cfdc7e2afe8
Content-Range: bytes 20-50/612
Content-Type: text/html

l>
<head>
<title>Welcome to ngi
--cfdc7e2afe8--