配置回源301/302跟随

回源301/302跟随功能同时支持源站的301和302响应状态码,本文中所有302状态码可以实现的功能,301状态码也同样支持。配置回源301/302跟随功能后,DCDN节点会代替用户直接处理源站响应的301/302状态码的内容,减少数据交互流程,加快用户获取资源的速度。

前提条件

  • 用户源站使用了301/302重定向方式去实现业务逻辑。

  • 默认不对外提供该功能,需提交工单申请对需要使用该功能的域名开启使用权限。

背景信息

301/302是HTTP协议中的一个状态码,代表已存在的资源被临时改变了位置,导致用户无法访问到对应的资源。基于此情况,服务器通常会在消息响应头中加入Location参数,当客户端接收到带有Location头的301/302响应时,会跳转到Location对应的地址去请求资源。

工作原理

回源301/302跟随功能指DCDN节点回源请求资源时,如果收到源站返回的301/302状态码,将由DCDN节点代替用户直接处理301/302状态码的内容,即直接跳转到源站301/302响应中的Location地址去获取资源,不会直接返回301/302状态码给用户。

image
  1. 用户向DCDN节点请求访问http://example.com/examplefile.txt文件。

  2. DCDN节点上未缓存该文件,DCDN节点回源站请求该文件。

  3. 源站收到请求后,向DCDN节点返回301/302状态码,Location地址指向http://www.example.org/examplefile.txt

  4. DCDN节点收到源站的响应后,直接向Location地址http://www.example.org/examplefile.txt发起请求。

  5. DCDN节点获取到所需资源后,缓存到DCDN节点上。

  6. DCDN节点将获取到的资源返回给用户。

此时,如果其他用户再请求访问http://example.com/examplefile.txt文件,会直接在DCDN节点命中缓存并返回给用户。

注意事项

配置回源301/302跟随之前,请先确认DCDN是否配置了回源HOST

  • 服务域名没有配置回源HOST:当源站响应“301/302状态码+Location URL”给DCDN节点时,服务域名回源请求Location URL携带的HOST头是源站响应的301/302信息里面的Location域名。

  • 服务域名配置了回源HOST:当源站响应“301/302状态码+Location URL”给DCDN节点时,服务域名回源请求Location URL携带的HOST头是DCDN上给服务域名配置的HOST头(默认为服务域名);如果客户源站的Location URL要求回源HOST必须使用Location域名,这时候访问结果就不符合预期,如果客户有该场景需求,需要提交工单申请在后台配置。

  • 源站响应给DCDN节点的Location头部的格式支持以下3种:

    • Location: http://www.example.net/index.htmlDCDN节点的跟随请求将会使用Location中的完整URL。

    • Location: //www.example.net/index.htmLDCDN节点的跟随请求将会使用302前的回源协议加上Location里面的信息来拼接成一个URL。

    • Location: /index.htmlDCDN节点的跟随请求将会使用302前的回源协议和域名加上Location里面的信息来拼接成一个URL。

操作步骤

  1. 登录DCDN控制台

  2. 在左侧导航栏,单击域名管理

  3. 域名管理页面,单击目标域名对应的配置

  4. 在指定域名的左侧导航栏,单击回源配置

  5. 回源配置页签下找到回源301/302跟随

  6. 打开回源301/302跟随开关。

  7. 单击修改配置,配置回源301/302跟随。

    参数

    描述

    跟随次数上限

    指在一次用户请求过程中,DCDN节点可以跟随Location地址跳转访问的最大次数,超出限制将直接返回301/302状态码给用户。默认值为2,取值范围为1~5。

    说明

    配置301/302跟随次数上限,会影响回源次数上限。回源次数上限指在一次用户请求过程中,DCDN节点可以回源访问源站的最大次数。

    回源次数上限=301/302跟随次数上限+1,即默认的回源次数上限为3,取值范围为2~6。

    保留请求参数

    • 保留:301/302跟随时保留原请求参数回目标源站。如果您选择保留,那么请求参数将会传递给Location地址对应的服务器。

    • 不保留:301/302跟随时不保留原请求参数回目标源站。

    保留请求头

    • 保留:301/302跟随时保留原请求头回目标源站。如果您选择保留,那么请求头参数将会传递给Location地址对应的服务器。

    • 不保留:301/302跟随时不保留原请求头回目标源站。

  8. 单击确定,完成配置。