配置回源302跟随功能后,CDN节点会代替用户直接处理源站响应的302状态码的内容,减少数据交互流程,加快用户获取资源的速度。
前提条件
用户源站使用了302重定向方式去实现业务逻辑。
背景信息
302是HTTP协议中的一个状态码,代表已存在的资源被临时改变了位置,导致用户无法访问到对应的资源。基于此情况,服务器通常会在消息响应头中加入Location参数,当客户端接收到带有Location头的302响应时,会跳转到Location对应的地址去请求资源。
工作原理
回源302跟随功能指CDN节点回源请求资源时,如果收到源站返回的302状态码,将由CDN节点代替用户直接处理302状态码的内容,即直接跳转到源站302响应中的Location地址去获取资源,不会直接返回302状态码给用户。

- 用户向CDN节点请求访问
http://example.com/examplefile.txt
文件。 - CDN节点上未缓存该文件,CDN节点回源站请求该文件。
- 源站收到请求后,向CDN节点返回302状态码,Location地址指向
http://www.example.org/examplefile.txt
。 - CDN节点收到源站的响应后,直接向Location地址
http://www.example.org/examplefile.txt
发起请求。 - CDN节点获取到所需资源后,缓存到CDN节点上。
- CDN节点将获取到的资源返回给用户。
http://example.com/examplefile.txt
文件,会直接在CDN节点命中缓存并返回给用户。
注意事项
配置回源302跟随之前,请先确认CDN是否配置了回源HOST:
- 加速域名没有配置回源HOST:当源站响应“302状态码+Location URL”给CDN节点时,加速域名回源请求Location URL携带的HOST头是源站响应的302信息里面的Location域名。
- 加速域名配置了回源HOST:当源站响应“302状态码+Location URL”给CDN节点时,加速域名回源请求Location URL携带的HOST头是CDN上给加速域名配置的HOST头(默认为加速域名);如果客户源站的Location URL要求回源HOST必须使用Location域名,这时候访问结果就不符合预期,如果客户有该场景需求,需要提交工单申请在后台配置。
操作步骤
配置示例
配置场景:您源站的资源挪至其他地址,但您并不希望您的用户感知该变动,希望使用原有域名正常访问资源。
配置方式:域名example.com开启回源302跟随,配置如下:

结果说明:用户请求
http://example.com/examplefile.txt
文件,恰好CDN节点为未缓存,返回源站请求资源(保留原请求参数和请求头),源站收到请求后,向CDN节点返回302状态码,并给出重定向地址为http://www.example.org/examplefile.txt
。
- CDN节点收到302状态码后,直接向重定向地址发起请求(302跟随次数上限设置为2,表示可以请求两次,请求失败后返回302状态码给用户)。
- CDN节点获取资源,返回给用户,并缓存至CDN节点。
- 其他用户再请求
http://example.com/examplefile.txt
文件,CDN直接将已缓存资源返回给用户。