2009-07-27 66 views
6

我一直在寻找的标准 - 但不完全确信以下几点:最大年龄和304不变形处理

如果我们有一个变体是送达(资源,图片,网页等)缓存设置为max-age = 259200(3天),服务器也在处理ETags和上次修改日期 - 那么当达到max-age时会发生什么 - 但是资源没有被修改?

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

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

想法?

回答

3

它会缓存3天以上。 RFC 2616 10.3.5

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

Details about age calculation

+0

谢谢!这将教会我更仔细地阅读规格并使用更大的字体大小:-)。 – 2009-07-27 11:14:44