我使用响应头来确保页面没有缓存在浏览器端,我使用了下面的代码。有谁能告诉我以下情况吗?
Response.CacheControl = "no-cache, no-store";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1;
发布于 2010-11-23 14:38:15
去读马克·诺丁汉出色的教程吧。
Response.CacheControl = "no-cache, no-store";
应该是
Response.CacheControl = "no-cache, no-store, must-revalidate";
和
Response.AddHeader("Pragma", "no-cache");
这是毫无意义的-尽管它是由许多网站(手册 -这是一个请求头-而不是响应头)。
Response.Expires = -1;
仅与HTTP/1.0客户机相关--大多数主流浏览器仍然尊重HTTP/1.1响应(缓存-控制)头,即使使用HTTP/1.0堆栈也是如此。在没有缓存信息的情况下,brwser不应该缓存响应。因此,忽略这一点应该是完全安全的。
如何测试它是否正常工作?
查看您的webserver日志文件或使用wireshark或iehttpheaders来查看每次引用内容时浏览器是否返回到服务器。
它是否也停止了CSS和JS文件的缓存。
是的-缓存信息与文件名及其mimetype无关。
发布于 2010-11-23 17:02:39
没有办法确保浏览器没有缓存任何内容
无论如何,您都可以将浏览器引导到不带响应头的位置,但您不能保证它在所有情况下都能在所有浏览器上工作。
如果您解释了原因(阻止使用回退按钮?)我们可以想出一个不错的解决方案。
发布于 2010-11-23 14:44:06
部分匹配:为了检查您的响应头,如果您使用Firefox,我建议您使用Firebug扩展,使用它您可以跟踪整个HTTP周期,包括请求和响应头,以及HTTP响应状态代码。
https://stackoverflow.com/questions/4254616
复制相似问题