播放器在请求视频片段(如HLS/DASH 切片)或清单文件时,会带上URL、请求头(Range、Referer、Cookie、Authorization)等信息。边缘节点根据配置的缓存键(通常包括URL、查询参数、部分Header)判断命中。若存在有效的Cache-Control(max-age、s-maxage)、ETag/Last-Modified,且未超时,则直接命中;若是带有动态授权或Cookie的请求,默认可能被设置为不缓存,从而触发回源。
当缓存项过期,边缘节点会根据策略选择:直接回源、使用条件请求(If-None-Match / If-Modified-Since),或返回过期但可用的内容(stale-while-revalidate)。高级CDN支持请求合并/折叠(request coalescing)
切片大小与切片时长直接影响请求数。短时长切片(如2s)会产生更多小请求,增加缓存查找与可能的回源压力;较长切片(如6-10s)能降低请求并提高缓存命中效果。使用稳定的切片URL(不带动态签名或频繁变化的查询参数)和合理的Cache-Control可以显著提高边缘命中率。另外,首屏与清单(manifest)的缓存策略要更严格,使用长TTL结合主动刷新可减少回源。
为保护源站,CDN常用的机制包括:配置origin shield或二级回源层以集中回源、设置并发限流与速率限制、使用请求合并、部署回源缓存(Tiered caching)以及预热/预取策略。此外,可以在回源路径启用熔断与退避、按内容分级回源(例如对小文件与切片优先命中边缘内存缓存),并使用压缩、HTTP/2或QUIC来提升回源效率与降低连接开销。
播放器端应尽量减少会导致不缓存的Header(去除不必要的Cookie或Authorization),优先使用稳定URL与合理的Range请求策略,支持并发连接与HTTP/2多路复用,并实现切片预取与有限重试。CDN侧应配置合适的缓存键与TTL,使用s-maxage、stale-while-revalidate、ETag/Last-Modified,开启请求合并与origin shield,规范查询参数和签名策略以避免短期变化的URL导致回源。双方协同(如播放器告知接入策略、CDN提供预取接口)是降低回源的关键。
