https://cloud.tencent.com/document/product/228/6290
<?php
header("Cache-Control: public");
header("Pragma: cache");
$offset = 30*60*60*24; // cache 1 month
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT";
header($ExpStr);
?>
优先级
当设置了多条缓存策略时,相互之间会有重复,配置项列表底部优先级高于顶部优先级。假设某域名配置了如下缓存配置:
- 所有文件30天
- .php .jsp .aspx 0秒
- .jpg .png .gif 300秒
- /test/*.jpg 400秒
- /test/abc.jpg 200秒
假设域名为www.test.com,资源为www.test.com/test/abc.jpg,其匹配方式如下:
- 匹配第一条所有文件,命中,此时缓存时间为30天。
- 匹配第二条,未命中。
- 匹配第三条,命中,此时缓存时间为300秒。
- 匹配第四条,命中,此时缓存时间为400秒。
- 匹配第五条,命中,此时缓存时间为200秒。
因此最终缓存时间为200秒,以最后一次匹配生效。
单击【调整优先级】可以添加缓存配置,您可以根据业务情况自定义调整已经添加的缓存过期配置顺序。
缓存继承
当用户请求您某一业务资源时,源站对应的 Response HTTP Header 中存在 Cache - Control 字段,此时默认策略如下:
- Cache - Control 字段为 max - age,对该资源的缓存时间以配置的缓存时间为主,不继承 max - age 指定时间。
- Cache - Control 字段为 no - cache 或者 no - store,此时 CDN 节点对此资源不做缓存。
- 无 Cache - Control 字段,CDN 会默认添加:Cache - Control: max - age = 600头部。
高级缓存配置
在缓存过期配置模块中可以找到 高级缓存过期设置 开关,单击即可打开。
当您开启了高级缓存过期设置开关后,用户请求源站某资源时 Response HTTP Header 中带有 Cache - Control 字段,且值为max - age = xxxx,此时节点对该资源的缓存时间取配置的过期时间与 max - age 中的最小值:
- 若用户源站配置/index.html的 max - age 为200秒,CDN 对应配置的缓存时间为600秒,则文件实际过期时间为200秒。
- 若用户源站配置/index.html的 max - age 为800秒,CDN对应的缓存时间为600秒,则文件实际过期时间为600秒。