【发布时间】:2010-02-04 15:42:17
【问题描述】:
我有以下元标记,据说可以防止浏览器缓存
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
这是否会阻止缓存服务器也保存内容,如果没有,有没有办法阻止路由器/服务器缓存?
【问题讨论】:
标签: caching
我有以下元标记,据说可以防止浏览器缓存
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
这是否会阻止缓存服务器也保存内容,如果没有,有没有办法阻止路由器/服务器缓存?
【问题讨论】:
标签: caching
来自here
为什么 META 缓存控件并不总是 工作
请注意,我们示例中的 META 标签 两者都使用了 HTTP-EQUIV 属性, 它试图模仿 HTTP 标头 信息。 HTTP 标头控制如何 浏览器和代理缓存都处理 您的网页。它们在 HTML 并且通常生成 由您的 Web 服务器自动生成。
您最好使用 HTTP 标头来设置缓存属性。参考文献
http://support.microsoft.com/kb/234067
http://www.htmlgoodies.com/beyond/reference/article.php/3472881
【讨论】:
不,它不会阻止代理缓存,也不会阻止任何元标记。您需要发送 HTTP 标头Cache-Control: no-cache。
【讨论】:
Cache-Control: no-cache 似乎是正确的,可以添加为<META http-equiv="Cache-Control" value="no-cache">。但最后似乎Pragma: no-cache 是Cache-Control: no-cache 的别名。
应该防止这种情况发生。如果缓存服务器的作者写了它以尊重这些标签。
无法保证会遵守这些标签,但遵循标准的编写良好的缓存服务器应该遵守这些标签。
【讨论】: