Http Cache:如果不同的http代理缓存相同内容的不同版本会怎么样?

时间:2011-03-24 05:11:10

标签: http caching

想象一下,用户在其浏览器中请求page.htm。 它通过互联网传输,其中一个代理服务器(P1)提供缓存版本。 然后,用户刷新页面,另一个请求通过因特网传播并到达代理服务器P2,代理服务器P2提供在不同时刻缓存的文档。 用户看到2个不同的内容。

问题:这可能发生吗?

假设到期策略设置为绝对日期,那就不会发生。 (理论上,因为服务器时钟不一定是同步的)。 但是相对时间窗缓存策略呢?

如果可能发生,你如何解决潜在问题?

1 个答案:

答案 0 :(得分:1)

是的,它可能会发生。

有几种方法可以解决它:

  • 按照您的建议设置绝对过期日期。

  • 通过发送Cache-Control: s-maxage=0, proxy-revalidate来阻止代理的缓存但是,我不确定所有代理都会尊重这一点。

  • 如果您知道即将更改某个页面,请将其缓存TTL调到很短的时间。然后,代理将以较短的间隔重新验证该页面。一旦新页面出来,它应该很快被拿起,你可以将TTL转回更长的时间段。