背景说明
Range回源,是指CDN节点收到用户请求后,会在回源时携带Range请求头,源站在收到Range请求后,会返回对应范围的内容数据给CDN。Range回源功能开启后,CDN节点可以以分片的形式缓存文件,对于Range请求而言,可以有效提高文件分发效率,降低首包时延,同时提高缓存利用率,减少不必要的回源。
详细信息
开启和关闭Range回源功能时,相应的情况如下:
- 关闭Range回源
- 客户端发起Range请求,CDN节点无缓存时,默认透传客户端Range请求回源,无论源站响应206或200状态码,CDN均不做缓存并透传源站的状态码和内容给客户端。
- 客户端发起完整文件请求,CDN节点无缓存时,透传客户端请求回源,源站响应200状态码,CDN缓存文件并响应200状态码及内容给客户端。
- 开启Range回源
- 无论客户端发起的是否Range请求,CDN节点无缓存时,均按配置的Range分片大小回源,如源站响应206状态码,则CDN缓存对应分片内容并响应206(如客户端为Range请求)或200(如客户端为完整文件请求)给客户端。
- 客户端发起Range请求,CDN有Range范围的文件内容缓存时,直接响应206状态码及对应范围缓存内容给客户端。
因此,可以通过回源请求头、状态码和源站的响应报文来确认Range回源功能是否生效。Range回源功能开启后:
- 回源请求头:CDN节点回源时会携带例如Range:bytes=100-200的请求头。
- 状态码:CDN节点Range请求回源时,源站响应的状态码是206。
- 源站响应报文:会带有Content-Range字段,表示响应片段内容的范围和总数据大小,例如:Content-Range:bytes 100-200/5000”,表示返回[100-200]这101个字节的数据。
Range回源功能的详细介绍和使用注意事项,详情请见:Range回源。