解释说明
配置资源在CDN节点的缓存过期时间遵循哪个设置,默认“缓存过期时间来源”为“CDN”。支持配置的取值如下:
- 源站:CDN节点的缓存过期时间遵循源站的设置。
- CDN:CDN节点的缓存过期时间遵循“缓存规则”中的“缓存过期时间”。
- 源站和CDN的最小值:CDN节点的缓存过期时间取缓存规则和源站二者的最小值。
- 如果源站同时配置了Cache-Control和Expires,优先遵从Cache-Control配置的过期时间。
- 如果“缓存过期时间来源”为“源站”,但是源站没有配置Cache-Control和Expires,此时节点缓存遵循CDN配置的缓存规则。
与强制缓存组合的结果
表1 强制缓存与缓存过期时间来源配合使用结果 | 缓存过期时间来源 | 强制缓存 | 配置结果 |
| 源站 | 关闭 | - 此时如果源站响应头Cache-Control设置了no-cache、private、no-store,CDN节点将不缓存资源。
- 如果源站设置了其他响应头,缓存优先级为s-maxage->max-age->expires。例如源站同时设置了Cache-Control:max-age=500 , s-maxage=400,此时CDN节点的缓存过期时间遵循s-maxage的值400s。
- 如果源站没有设置以上响应头,执行CDN控制台配置的缓存过期时间。
|
| 源站 | 开启 | 此时忽略源站的不缓存设置,即源站响应头Cache-Control设置了no-cache、private、no-store时依然会缓存资源,缓存逻辑如下: - 如果源站响应头设置了缓存过期时间,缓存优先级为s-maxage->max-age->expires。例如源站同时设置了Cache-Control:max-age=500 , s-maxage=400,此时CDN节点的缓存过期时间遵循s-maxage的值400s。
- 如果源站没有设置以上响应头,执行CDN控制台配置的缓存过期时间。
|
| CDN | 关闭 | - 如果源站响应头Cache-Control设置了no-cache、private、no-store,CDN节点将不缓存资源。
- 如果源站响应头Cache-Control未设置no-cache、private、no-store,执行CDN控制台配置的缓存过期时间。
|
| CDN | 开启 | 此时忽略源站响应头,执行CDN控制台配置的缓存过期时间。 |
| 源站和CDN的最小值 | 关闭 | - 最小值为CDN节点设置的缓存过期时间时,配置结果如下:
- 如果源站响应头Cache-Control设置了no-cache、private、no-store,CDN节点将不缓存资源。
- 如果源站响应头Cache-Control未设置no-cache、private、no-store,执行CDN控制台配置的缓存过期时间。
- 最小值为源站设置的缓存时间时,配置结果如下:
- 此时如果源站响应头Cache-Control设置了no-cache、private、no-store,CDN节点将不缓存资源。
- 如果源站设置了其他响应头,缓存优先级为s-maxage->max-age->expires。例如源站同时设置了Cache-Control:max-age=500 , s-maxage=400,此时CDN节点的缓存过期时间遵循s-maxage的值400s。
- 如果源站没有设置以上响应头,执行CDN控制台配置的缓存过期时间。
|
| 源站和CDN的最小值 | 开启 | - 最小值为CDN节点设置的缓存过期时间时,忽略源站响应头,执行CDN控制台配置的缓存过期时间。
- 最小值为源站设置的缓存时间时,忽略源站的不缓存设置,即源站响应头Cache-Control设置了no-cache、private、no-store时依然会缓存资源,配置结果如下:
- 如果源站响应头设置了缓存过期时间,缓存优先级为s-maxage->max-age->expires。例如源站同时设置了Cache-Control:max-age=500 , s-maxage=400,此时CDN节点的缓存过期时间遵循s-maxage的值400s。
- 如果源站没有设置以上响应头,执行CDN控制台配置的缓存过期时间。
|