【问题标题】:why cache-control:max-age don't work?为什么缓存控制:最大年龄不起作用?
【发布时间】:2012-10-17 04:09:24
【问题描述】:

我正在学习 http 标头,我想在“缓存控制”字段上运行测试,所以我建立了一个只有默认页面的 asp.net 网站。在这个页面中,我正在测试“ cache-control" 字段,下面的 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”阻止了缓存,但为什么呢?我错过了什么吗?

【问题讨论】:

    标签: http-headers


    【解决方案1】:

    在浏览器中,F5 执行“条件刷新”,它会通过条件请求访问服务器(仅当服务器通过 HTTP/304 要求这样做时才使用缓存文件)。要查看缓存标头的效果,请改为打开同一页面的新选项卡。如果您配置正确,您将看到相同的值。

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

    【讨论】:

    • 另外,请注意,在将 Chrome 与 DevTools 一起使用时,缓存设置可能会被覆盖。
    猜你喜欢
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    相关资源
    最近更新 更多