caching控制最大年龄问题

我试图从下面了解caching控制:max-age = 0configuration:

这是来自HTTP Live Headers的snipet,用于刷新后着陆页上的静态图像:

If-Modified-Since: Sat, 23 Jul 2011 02:05:28 GMT If-None-Match: "21246-eb05-4a8b30415ea00" **Cache-Control: max-age=0** HTTP/1.1 304 Not Modified Date: Tue, 06 Sep 2011 20:59:29 GMT Server: IBM_HTTP_Server Connection: Keep-Alive Keep-Alive: timeout=6 Etag: "21246-eb05-4a8b30415ea00" 

我看到我们的Cache-Control显示max-age=0 。 我find了这个解释:

高速caching控制:最大年龄

这是HTTP 1.0中早期Expires头部的HTTP 1.1等效项。 它隐含地告诉浏览器可能会caching页面,但是如果超过max-age,则必须与服务器重新validation。 将max-age设置为零可确保页面不会从caching中提供,但始终会对服务器进行重新validation。

如果这是正确的,我们不应该从浏览器caching拉如果你看看上面的304是不正确的? max-age=0是什么意思?

我们没有在Apache httpd.conf中手动configuration任何cachingconfiguration,所以我假设我们使用默认caching/ etags。

关键在于你发布的解释的最后一句话:

将max-age设置为零可确保页面不会从caching中提供,但始终会对服务器进行重新validation。

在您粘贴的示例中,客户端已将资产存储在其caching中,并且可以为其提供服务。 但是,由于最大年龄,客户端将首先联系服务器,并询问是否已被修改。 从粘贴的服务器响应看来,资产没有改变,服务器正确地“重新validation”(304)客户端版本是正确的(没有实际上必须通过线路运送资产,所以有一些效益)。

如果浏览器能够从caching中获得更高的浏览器容量,而不需要向服务器请求任何内容,