【问题标题】:Does meta tag no-cache prevent router caching?元标记无缓存是否会阻止路由器缓存?
【发布时间】:2010-02-04 15:42:17
【问题描述】:

我有以下元标记,据说可以防止浏览器缓存

<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />

这是否会阻止缓存服务器也保存内容,如果没有,有没有办法阻止路由器/服务器缓存?

【问题讨论】:

    标签: caching


    【解决方案1】:

    来自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

    【讨论】:

      【解决方案2】:

      不,它不会阻止代理缓存,也不会阻止任何元标记。您需要发送 HTTP 标头Cache-Control: no-cache

      http://www.w3.org/Protocols/HTTP/Issues/cache-private.html

      另见:http://www.mnot.net/cache_docs/#META

      【讨论】:

      • "http-equiv" 元素由 http 服务器获取,并作为响应的一部分包含在 http 标头中。 (w3.org/TR/html401/struct/global.html):“当通过超文本传输​​协议 (HTTP) 检索文档时,http-equiv 属性具有特殊意义。HTTP 服务器可以使用 http-equiv 属性指定的属性名称来创建 [RFC822]- HTTP 响应中的样式标头。”
      • 您只需要决定正确的 http/http-equiv 标头条目。在这种情况下,Cache-Control: no-cache 似乎是正确的,可以添加为&lt;META http-equiv="Cache-Control" value="no-cache"&gt;。但最后似乎Pragma: no-cacheCache-Control: no-cache 的别名。
      • 请注意其中的“可能”一词。他们可能会,但他们通常不会。无论如何,这对代理服务器没有帮助。代理几乎总是会忽略元标记,包括缓存指令。
      【解决方案3】:

      应该防止这种情况发生。如果缓存服务器的作者写了它以尊重这些标签。

      无法保证会遵守这些标签,但遵循标准的编写良好的缓存服务器应该遵守这些标签。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-27
        • 1970-01-01
        相关资源
        最近更新 更多