我所理解的是Expires和max-age都可以用来指定文档的过期时间,当max-age存在时会覆盖Expires,首次请求后用回车键刷新页面, 在max-age有效期内部应该发送请求。但是我看到某电商上的一个页面,第一次请求后max-age:600,然后我回车刷新,发现还是发送了请求,请 求报文中max-age:0,这给我理解的有偏差,我不知道是不是我理解的有问题,请各位大牛解答下,这个问题很困惑我。
第一张图片为第一次请求时响应。
第二张图片为第二次请求头与响应头信息。
两次请求间隔超过了10分钟了貌似~
第二次请求的status code是304呀,是检查缓存是否还有效的过程~。
304告诉客户端要使用本地缓存.
回车刷新是会发请求的 如果服务器端的文件没有产生变化,那么会返回304,这个没有问题 和你的截图也吻合。
但是如果这个页面还引用了别的页面 比如 script标签引js,如果这个js没有变化 且设置了expires或者max-age,那么此时不会发送请求 直接使用缓存。
回304的情况,客户端也是使用缓存,回304的时候 服务端不会将请求文件的内容写回客户端的 仅仅是回一个状态码
详见 http://www.cnblogs.com/simoncook/p/6234948.html