作者回复: 还会使用过期的数据A,基于时间的过期策略是有这个问题。所以以你的例子来看,A不太会被修改,但一修改如果更新不及时会造成严重错误,通常会把A的超链接放在C中,而且A的超链接中含有版本号,而C是不能缓存或者缓存时间极短,浏览器每次都会访问C(如.html)才会访问A,这样更新A时要同时更新C中的超链接A版本号即可。
作者回复: 对,谁保存并打算使用缓存,谁就应该判断缓存是否过期。
关于过期时间要看字段,如expire指定了绝对时间,这就存在时钟不同步问题。但max-age是现在主流使用的缓存过期时间,它是相对时间,而且如果它和expire同时出现时它的优先级更高,因此max-age不存在时钟不同步问题。
关于缓存字段及其优先级,推荐你看一下《Web协议详解与抓包实战》的第29到32课。
作者回复: 不会,可以直接缓存压缩后的body