为什么缓存控制:max-age不起作用?

时间:2012-10-17 04:09:25

标签: http-headers

我正在关注http标头,我想在“缓存控制”字段上运行测试,所以我构建了一个只有默认页面的asp.net网站。在这个页面我正在测试“ “缓存控制”字段,其中包含以下Page_Load中的代码:

Response.AddHeader("Cache-Control","max-age=3600");
Response.Write(new Random().Next(0,9999).ToString());

我认为每次刷新页面时都会给我相同的数字,因为当收到“Cache-Control:max-age = 3600”标题时,页面会被浏览器缓存在本地,但令我惊讶的是,每当我按下刷新按钮(不是ctrl + f5)时,它就会给我一个新的数字,就像缓存控制根本不起作用一样。

我使用fiddler捕获请求/响应信息,并且在请求标头中看到“Cache-Control:max-age = 0”,而响应头中的“Cache-Control:max-age = 3600”似乎“Cache-Control:max-age = 0”阻止了缓存,但为什么呢?我错过了什么吗?

1 个答案:

答案 0 :(得分:9)

在浏览器中,F5执行“条件刷新”,使用条件请求命中服务器(仅当服务器通过HTTP / 304表示时才使用缓存文件)。要查看缓存标头的效果,请将新标签打开到同一页面。如果你配置好一切,你会看到相同的值。

点击此处了解有关浏览器刷新的详情:http://blogs.msdn.com/b/ieinternals/archive/2010/07/08/technical-information-about-conditional-http-requests-and-the-refresh-button.aspx