You need to enable JavaScript to run this app.
导航
Multi Range
最近更新时间:2024.07.25 17:02:36首次发布时间: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 启用后,如果用户请求中的任何一个分片与请求文件没有交集,CDN 不会返回任何分片。响应状态码是 416。

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

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 在 域名管理 页面,找到需要配置的域名。
  4. 在 操作 列,点击 管理
  5. 在域名页面上,点击 缓存配置 标签页。
  6. 在页面右上方,点击 编辑配置
  7. 在 Multi Range 下方,设置 状态 为启用。
  8. 在页面右上方,点击 提交编辑

更多信息

CDN 对 multi-range 请求的响应

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

说明

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

请求示例

curl http://www.example.copm/ -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--