我想给图片站点配置响应头,
让访问过的图片在用户的浏览器缓存中存放一段时间 .
我是这样设置的,但是似乎没有效果,
当我把浏览器关闭后再打开请求同样的图片,
状态码还是200,不是304,
不关闭浏览器,在浏览器中打开一个新选项卡,
访问同样的URL,还是返回200,只有刷新的时候才返回304
是我的设置没有生效还是我对缓存理解错了?
我的理解是:
如果设置了一天过期,那么只要访问过这个图片,
就算关了浏览器,再打开访问时,也不应该请求服务器,直接从本地缓存文件中加载.
是这样的吗?
我觉得设置了没效果的原因是,当我没有设置的时候,首次请求返回200,刷新也能返回304..
请问正确的IIS设置应该是怎样的?谢谢
如果IIS7的缓存响应头设置有效,在缓存有效期内,不刷新的话,浏览器根本不会向服务器发请求。
判断IIS7的缓存响应头设置有效,可以看Cache-Control响应头中有没有max-age。
看了一下,响应头里是有的,可是请求头里是0,我的chrome没有禁用缓存的啊..而且返回代码是304,这是怎么回事呢?
如下图:
另外我想问一下,Keep-Alive应该为true吗?HTTP不是无状态的嘛,为什么要保持长连接呢?
@hexllo: keep-alive针对的是TCP连接,不是HTTP
@dudu: 原来如此,谢谢指导,请问上图中服务器返回的响应头是正确的吗?因为请求头中发送的是max-age=0,但是chrome是启用了缓存的,我忍不住想多问一次确认一下.
@hexllo: 请求中max-age=0是正常的,关键看响应头