为什么过期的css样式仍然缓存而不是从服务器请求?

时间:2016-11-24 04:19:52

标签: caching

点击Chrome中地址栏中的回车键,我两次访问this page。 css文件似乎已过期:cache-control max-age是5天,但最后修改是5天前(我在中国,现在时间是2016年10月24日下午12:16)。提前谢谢。

enter image description here

整个请求标题:

Accept:text/css,*/*;q=0.1
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Host:c.58cdn.com.cn
Proxy-Connection:keep-alive
Referer:http://m.58.com/bj/zufang/?58ihm=m_house_index_zufang&58cid=1&PGTID=0d200001-0000-15fd-aae2-e605031f9c08&ClickID=1
User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1

整个响应标题:

Age:69061
Cache-Control:max-age=432000
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/css
Date:Wed, 23 Nov 2016 08:43:18 GMT
Last-Modified:Fri, 18 Nov 2016 08:38:39 GMT
Transfer-Encoding:chunked
X-Cache:HIT from www.matocloud.com

3 个答案:

答案 0 :(得分:1)

这是因为Last-Modified字段的GMT时区。这与您当地的时区不同。

Last-Modified字段的时间为08:38:39 GMT。但是,当前时间仅为04:22:54 GMT

您可以在此处查看当前的GMT时间:http://time.is/GMT

编辑:由于某种原因,响应标头中的日期字段不准确。时间尚未达到08:43:18 GMT

答案 1 :(得分:0)

我认为可能是因为if-modified-since效果。 浏览器向缓存服务器发送请求,并使用if-modified-since缓存请求,并且服务器发送OK,以便缓存直接发送带有命中的xcache标头

答案 2 :(得分:0)

现在我知道为什么last-modified不起作用 - cache-control的优先级高于last-modified

因此,如果我在5天之前访问css,浏览器将始终从缓存中加载它,这正是cache-control的用途。