内容改了,刷新页面还是旧的。清一次缓存好了,过两天又出现。这类问题很少是缓存没生效,多半是缓存键没把所有变量算进去。
两层缓存,先分清是谁
浏览器本地一层,边缘节点一层。前者由响应头里的有效期控制,后者由服务商配置控制。用户看到旧内容,先确认是哪一层返回的:看响应头里的缓存命中标识与年龄字段,命中边缘和命中本地,处置方式不同。
缓存键包含哪些维度
最基本的键是完整地址,包含查询参数。再往上还有主机名、协议、内容协商的结果、登录状态。少算一维就会串内容:同一个地址给手机和桌面返回不同结构,却共用一份缓存,用户就会看到排版错乱的页面。
Vary 不能乱用
按请求头区分缓存是标准做法,但把整个浏览器标识列进去,命中率会掉到接近零,等于没有缓存。要区分的是明确维度,比如是否为移动端、使用哪种语言,用单独的标识来表达,比按整串标识分键干净得多。
有效期分级
页面文档短一些,改完能较快生效;带指纹的静态资源可以设很长,并标记为不可变,因为地址变了就是新文件;接口数据按业务定,列表类可以几十秒,详情类可以几分钟。全都设成一样的有效期,不是太短就是太旧。
发布顺序决定看不看得到新旧混搭
正确顺序是:先发布新的静态资源,文件名带新指纹;再更新页面文档,让它引用新地址;最后清理边缘缓存。反过来做,用户会拿到旧页面配新资源,或者新页面配旧资源,样式错乱往往就是这么来的。
清理范围要收窄
按地址清理最精准,按标签清理适合批量,全量清理会瞬间把请求打回源站。促销上线、批量改版这类操作,全量清理要放在低峰,并提前确认源站扛得住。
怎么验证
换一个没访问过的网络,请求一次,看响应头里的命中标识、年龄与有效期;再换一个节点重复一次。两次结果一致,说明边缘配置生效。只看浏览器刷新结果,很容易被本地缓存误导。
关于冉冉科技
江苏冉冉信息科技有限公司(品牌“冉冉科技”)成立于2017年,位于江苏省常州市新北区,是一家从事互联网信息服务、电子商务应用与企业应用系统开发的技术服务企业。公司业务涵盖网站建设、网页设计、SEO优化、竞价包年、域名注册、虚拟主机、企业邮箱、整合营销及企业形象策划等,以“只做有效果的网络营销”为服务主张,累计完成三千余起网站建设与服务。

冉冉科技

商务咨询