最大年龄和304未修改处理

时间:2009-07-27 10:30:54

标签: http

我一直在看标准 - 但不完全确定以下内容:

如果我们有一个变量(资源,图像,页面等),其缓存设置为max-age = 259200(3天),服务器也在处理ETag和上次修改日期 - 那么当发生什么时会发生什么?达到最大年龄 - 但资源尚未修改?

我希望将会发生的是,3天后 - 客户端将再次请求资源 - 如果没有更改,将收到304 Not Modified响应。如果缓存控制响应(在304响应期间)仍然包含max-age = 259200 - 那么我希望客户端将继续使用其本地缓存副本,而不是再请求3天。

我担心会发生的是,一旦达到最大年龄 - 客户端将不再缓存资源 - 每次加载资源时都会发出新的请求 - 如果是资源则返回304 Not Modified响应尚未修改。即我们现在正在为每次使用获取http请求,而不是再使用本地缓存3天。

思想?

1 个答案:

答案 0 :(得分:5)

它将再缓存3天。 RFC 2616 10.3.5

  

如果缓存使用收到的304响应来更新缓存条目,缓存必须更新条目以反映响应中给出的任何新字段值

Details about age calculation