浏览器缓存和304的冲突问题

最近学习apache的配置,发现Expires和304的一个问题
1.在浏览器请求静态文件时,如果之前访问过,则apache直接返回304,然后浏览器就直接调用浏览器缓存了
2.然后我开启apache的mod_expires.so配置后,浏览器还是请求了服务器,然后服务器返回304,跟不开启mod_expires.so情况没有区别,而且http头信息上Expires已经确实被正确设置了
以上问题在IE和firefox都是一样的
那是不是说,设置expires已经没有意义了,反正服务器会比对静态文件的时间戳,然后返回304;而设置了expires浏览器也还是会请求服务器的?
有大大能够解答下吗

 

1个回答

1、Apache默认开启ETag缓存支持,你可以看到:
If-Modified-Since:Sat, 20 Nov 2004 06:16:26 GMT
If-None-Match:"100000005886a-2c-3e94a902f4280"

2、可以通过如下配置禁用

#关掉ETag
FileETag None

#关掉Last-Modified
LoadModule headers_module modules/mod_headers.so

Header unset Last-Modified

jinnianshilongnian
jinnianshilongnian 呵呵 可以参考下我的这篇文章 http://jinnianshilongnian.iteye.com/blog/1608234 有讲缓存知识的
大约 8 年之前 回复
linshi2007
linshi2007 谢谢,已解决,之前还真不知道有ETag这东西
大约 8 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐