HTTP缓存问题

时间:2010-11-23 09:41:30

标签: http asp-classic

我正在使用响应头来确保页面没有缓存在浏览器端,我使用了以下代码来执行此操作。 有人可以跟我通知,

  1. 如何测试它是否正常工作?还是不工作?
  2. 它是否也会停止CSS和JS文件的缓存。
  3. 有人可以详细说明这个缓存的工作原理吗?在Windows中,我们有寺庙互联网文件,它与此有关。

    Response.CacheControl = "no-cache, no-store";

    Response.AddHeader("Pragma", "no-cache");

    Response.Expires = -1;

3 个答案:

答案 0 :(得分:3)

阅读Mark Nottingham's excellent tutorial

Response.CacheControl = "no-cache, no-store";

应该是

Response.CacheControl = "no-cache, no-store, must-revalidate";

 Response.AddHeader("Pragma", "no-cache");

没有意义 - 尽管有很多网站建议(Manual - 它是一个REQUEST标头 - 而不是响应标头)。

 Response.Expires = -1;

仅与HTTP / 1.0客户端相关 - 即使使用HTTP / 1.0堆栈,大多数主流浏览器仍然尊重HTTP / 1.1响应(缓存控制)标头。在没有缓存信息的情况下,brwser不应缓存响应。因此,省略这一点应该是完全安全的。

  

如何测试它的工作原理?

查看您的网络服务器日志文件或使用wireshark或iehttpheaders查看每次引用内容时浏览器是否返回服务器

  

它是否也会停止CSS和JS文件的缓存。

是 - 缓存信息与文件名及其mimetype无关。

答案 1 :(得分:1)

无法确保浏览器无法缓存任何内容

无论如何,您可以将浏览器指向不使用响应标头,但不能保证它在所有情况下都适用于所有浏览器。

如果你解释原因(防止使用后门按钮?),我们可以提出一个不错的解决方案。

答案 2 :(得分:0)

部分匹配:要检查您的响应标头,如果您使用Firefox,我建议使用Firebug扩展,使用它可以跟踪整个HTTP周期,包括请求和响应标头以及HTTP响应状态代码。