首页 新闻 搜索 专区 学院

关于http协议中,cache-control : max-age 缓存问题

1
悬赏园豆:100 [待解决问题]

我所理解的是Expires和max-age都可以用来指定文档的过期时间,当max-age存在时会覆盖Expires,首次请求后用回车键刷新页面, 在max-age有效期内部应该发送请求。但是我看到某电商上的一个页面,第一次请求后max-age:600,然后我回车刷新,发现还是发送了请求,请 求报文中max-age:0,这给我理解的有偏差,我不知道是不是我理解的有问题,请各位大牛解答下,这个问题很困惑我。

第一张图片为第一次请求时响应。

第二张图片为第二次请求头与响应头信息。

junlove的主页 junlove | 初学一级 | 园豆:102
提问于:2015-12-14 16:33
< >
分享
所有回答(2)
1

两次请求间隔超过了10分钟了貌似~

 

第二次请求的status code是304呀,是检查缓存是否还有效的过程~。

304告诉客户端要使用本地缓存.

米修君 | 园豆:553 (小虾三级) | 2015-12-14 17:29
1

回车刷新是会发请求的 如果服务器端的文件没有产生变化,那么会返回304,这个没有问题  和你的截图也吻合。

但是如果这个页面还引用了别的页面 比如 script标签引js,如果这个js没有变化 且设置了expires或者max-age,那么此时不会发送请求  直接使用缓存。

回304的情况,客户端也是使用缓存,回304的时候 服务端不会将请求文件的内容写回客户端的 仅仅是回一个状态码

详见 http://www.cnblogs.com/simoncook/p/6234948.html

chen.simon | 园豆:202 (菜鸟二级) | 2017-01-01 15:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册