首页 新闻 搜索 专区 学院

请问IIS7的缓存响应头如何设置才有效?

0
悬赏园豆:10 [待解决问题]

我想给图片站点配置响应头,

让访问过的图片在用户的浏览器缓存中存放一段时间 .


我是这样设置的,但是似乎没有效果,

 

当我把浏览器关闭后再打开请求同样的图片,

状态码还是200,不是304,

不关闭浏览器,在浏览器中打开一个新选项卡,

访问同样的URL,还是返回200,只有刷新的时候才返回304

 

是我的设置没有生效还是我对缓存理解错了?

我的理解是:

如果设置了一天过期,那么只要访问过这个图片,

就算关了浏览器,再打开访问时,也不应该请求服务器,直接从本地缓存文件中加载.

 


是这样的吗?

 

我觉得设置了没效果的原因是,当我没有设置的时候,首次请求返回200,刷新也能返回304..

 

请问正确的IIS设置应该是怎样的?谢谢

hexllo的主页 hexllo | 菜鸟二级 | 园豆:405
提问于:2015-08-07 17:14
< >
分享
所有回答(1)
0

如果IIS7的缓存响应头设置有效,在缓存有效期内,不刷新的话,浏览器根本不会向服务器发请求。

判断IIS7的缓存响应头设置有效,可以看Cache-Control响应头中有没有max-age。

dudu | 园豆:39035 (高人七级) | 2015-08-07 17:36

 看了一下,响应头里是有的,可是请求头里是0,我的chrome没有禁用缓存的啊..而且返回代码是304,这是怎么回事呢?

如下图:

另外我想问一下,Keep-Alive应该为true吗?HTTP不是无状态的嘛,为什么要保持长连接呢?

支持(0) 反对(0) hexllo | 园豆:405 (菜鸟二级) | 2015-08-07 19:17

@hexllo: keep-alive针对的是TCP连接,不是HTTP

支持(0) 反对(0) dudu | 园豆:39035 (高人七级) | 2015-08-07 20:02

@dudu: 原来如此,谢谢指导,请问上图中服务器返回的响应头是正确的吗?因为请求头中发送的是max-age=0,但是chrome是启用了缓存的,我忍不住想多问一次确认一下.

支持(0) 反对(0) hexllo | 园豆:405 (菜鸟二级) | 2015-08-08 12:05

@hexllo: 请求中max-age=0是正常的,关键看响应头

支持(0) 反对(0) dudu | 园豆:39035 (高人七级) | 2015-08-08 12:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册