浏览器缓存中针对大型多媒体流(Video/Audio)的 Range 请求,分片响应(206 Partial Content)是怎么被逐级缓存的

冷炫風刃

冷炫風刃

2026-07-25

863人浏览

原创

浏览器不缓存206响应,仅内存缓冲;cdn需开启range回源并匹配分片策略(如≥10mb文件、4mb分片)才能按字节段缓存;源站必须支持range响应206,否则整链路降级为全量下载。

浏览器缓存中针对大型多媒体流(video/audio)的 range 请求,分片响应(206 partial content)是怎么被逐级缓存的

浏览器对大型音视频的 Range 请求响应(206)本身**不会被浏览器整体缓存为一个完整资源**,而是按“分片”粒度被临时管理——它不走传统 HTTP 缓存(如 disk/memory cache),而是由媒体播放器内部缓冲机制协同处理。真正参与逐级缓存的是 CDN 和中间代理层,它们依据 Range 回源能力与分片缓存策略决定是否、如何缓存每个字节段。

浏览器端:不缓存 206 响应,只做内存缓冲

浏览器收到 206 Partial Content 响应后:

  • 不会将该响应写入 HTTP Cache(比如 DevTools 的 “Cache” 标签页里查不到);
  • 而是交由 <video></video><audio></audio> 元素的媒体引擎(如 Blink 的 Media Source Extensions 或原生解码器)做**内存缓冲(in-memory buffer)**;
  • 缓冲区大小有限(通常几 MB),播放完或跳过即丢弃,不持久化;
  • 拖动进度条时,会发起新的 Range 请求(如 Range: bytes=12000000-15000000),旧缓冲自动释放。

CDN 层:按“分片”缓存,依赖 Range 回源开关

CDN 是否缓存某一段数据,取决于两个关键配置:

Comet AI 浏览器
Comet AI 浏览器

下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。

下载
  • Range 回源必须开启:否则 CDN 向源站发的是无 Range 的全量 GET,拿到 200 响应后只能整块缓存,无法支持后续任意 Range;
  • 分片缓存阈值与大小需匹配文件特征:例如腾讯云默认仅对 ≥10MB 文件启用分片缓存,且默认分片为 4MB;若文件 9.5MB,则仍按整文件缓存,失去分片优势。

开启后,CDN 节点收到用户 Range 请求(如 bytes=0-3999999),会向源站发出相同 Range 的回源请求;源站返回 206 + Content-Range: bytes 0-3999999/524288000,CDN 将这一段独立缓存为一个 key(如 sha256(url+range)),后续同 Range 请求直接命中。

源站与反向代理:决定能否响应 206,是整个链路的前提

只有源站(或 Nginx/Apache 等反代)正确支持 Range,整条链路才能生效:

  • 静态文件服务(如 Nginx 默认配置)天然支持 Range,返回 Accept-Ranges: bytes
  • 动态后端(如 Node.js/Python)若未手动解析 Range 头并构造 206 响应,浏览器将降级为全量下载(200),CDN 也无法分片回源;
  • 源站还需确保 ETagLast-Modified 一致——否则同一文件不同 Range 响应可能被误判为不同资源,导致缓存分裂。

Azure Front Door / Cloudflare 等现代边缘:区块预取 + 分片缓存一体化

这类平台把“分片”逻辑下沉到边缘:

  • 收到首个 Range 请求(如开头 8MB),立即以 8MB 区块为单位向源站回源;
  • 每收到一个区块,就缓存并实时吐给客户端,同时并发预取下一个区块;
  • 后续请求同一区块直接返回,跨区块请求则组合已缓存部分 + 补充回源;
  • 只要源站支持 206,边缘就能自动完成分片缓存与流式交付,无需业务侧改造。

相关专题

更多
火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

0

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

0

10

火山引擎对象存储使用教程
火山引擎对象存储使用教程

火山引擎对象存储适合用于网站图片、视频文件、备份数据、静态资源和应用附件管理。本专题整理TOS控制台入口、存储桶创建、地域选择、权限设置、文件上传、访问链接生成、CDN加速、费用查看和常见上传或访问失败问题,帮助用户快速掌握对象存储基础操作。

2026.08.04

1

10

火山引擎云服务器使用教程
火山引擎云服务器使用教程

火山引擎云服务器使用教程适合第一次购买、部署和管理云服务器的用户参考。本专题整理控制台入口、实例创建、地域和配置选择、系统镜像设置、安全组放行、远程连接、网站部署、续费计费和常见连接失败问题,帮助用户快速完成云服务器基础使用流程。

2026.08.04

3

10

火山引擎API Key绑定大模型教程
火山引擎API Key绑定大模型教程

火山引擎API Key怎么绑定大模型适合需要在火山方舟、应用后台、脚本工具或AI编程软件中调用模型的开发者参考。本专题整理控制台服务开通、API Key创建、模型权限检查、模型ID选择、Base URL填写、调用测试和鉴权失败排查,帮助用户完成从密钥到模型调用的配置流程。

2026.08.04

2

10

火山引擎API Key获取教程
火山引擎API Key获取教程

火山引擎API Key适合需要调用火山引擎云服务、AI模型、火山方舟接口或其他开放能力的开发者参考。本专题整理控制台入口、账号认证、服务开通、API Key创建、密钥复制保存、权限检查、调用测试和Key无效等常见问题排查。

2026.08.04

6

10

火山引擎API接入教程
火山引擎API接入教程

火山引擎API接入适合需要在应用、脚本、后台服务或AI工具中调用火山引擎能力的开发者参考。本专题整理控制台入口、服务开通、API Key获取、接口地址配置、请求参数填写、调用测试、权限设置、额度查询和常见接口报错排查。

2026.08.04

6

10

火山引擎DeepSeek API调用教程
火山引擎DeepSeek API调用教程

火山引擎DeepSeek API适合需要在应用、脚本、智能体或AI编程工具中调用DeepSeek模型的开发者参考。本专题整理火山引擎控制台入口、模型服务开通、API Key获取、Base URL配置、模型名称填写、调用测试、额度查询和常见接口报错排查。

2026.08.04

3

10

火山引擎控制台操作教程
火山引擎控制台操作教程

火山引擎控制台中常用功能包括API密钥管理、模型调用配置、云资源查看、账单明细、用量统计和权限分配。本专题整理控制台基础操作、服务开通流程、Key创建与保存、费用消耗查看、子账号权限设置和调用失败排查,方便开发者完成日常管理。

2026.08.04

3

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
燕十八nginx精品视频教程
燕十八nginx精品视频教程

共23课时 | 7.7万人学习

php-src源码分析探索
php-src源码分析探索

共6课时 | 0.6万人学习

Golang云原生架构师课程
Golang云原生架构师课程

共49课时 | 4.2万人学习