首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTTP缓存问题

HTTP缓存问题
EN

Stack Overflow用户
提问于 2010-11-23 09:41:29
回答 3查看 1.6K关注 0票数 0

我使用响应头来确保页面没有缓存在浏览器端,我使用了下面的代码。有谁能告诉我以下情况吗?

  1. 如何测试它是否正常工作?还是不工作?
  2. 它是否也停止了CSS和JS文件的缓存。
  3. 请有人详细说明一下这个缓存是如何工作的吗?在windows中,我们有临时的互联网文件,这与此有关吗? Response.CacheControl = "no-cache, no-store"; Response.AddHeader("Pragma", "no-cache"); Response.Expires = -1;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-23 14:38:15

去读马克·诺丁汉出色的教程吧。

代码语言:javascript
运行
复制
Response.CacheControl = "no-cache, no-store";

应该是

代码语言:javascript
运行
复制
Response.CacheControl = "no-cache, no-store, must-revalidate";

代码语言:javascript
运行
复制
 Response.AddHeader("Pragma", "no-cache");

这是毫无意义的-尽管它是由许多网站(手册 -这是一个请求头-而不是响应头)。

代码语言:javascript
运行
复制
 Response.Expires = -1;

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

如何测试它是否正常工作?

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

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

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

票数 3
EN

Stack Overflow用户

发布于 2010-11-23 17:02:39

没有办法确保浏览器没有缓存任何内容

无论如何,您都可以将浏览器引导到不带响应头的位置,但您不能保证它在所有情况下都能在所有浏览器上工作。

如果您解释了原因(阻止使用回退按钮?)我们可以想出一个不错的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2010-11-23 14:44:06

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4254616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档