【问题标题】:Do I have to set cache expiration every time on HTML?我每次都必须在 HTML 上设置缓存过期吗?
【发布时间】:2012-04-12 21:35:06
【问题描述】:

我想在 10 天后为我的 html 页面设置缓存过期

<META HTTP-EQUIV="expires" CONTENT="Thu, 12 Apr 2012 08:21:57 GMT">

所以我的问题是

  1. 10 天后会发生什么?是的,缓存会过期,但我必须再次设置过期日期吗?
  2. 我有一种方法可以设置白天的长度,例如:10
  3. 这里很困惑,请给我一些参考。

请帮忙...

【问题讨论】:

  • 对不起,我没有在我的问题的代码块中添加代码

标签: html caching meta-tags browser-cache


【解决方案1】:

标签的作用有限。特别是,它不会影响代理,因为它们处理 HTTP 标头并且不解析 HTML 文档。

在到期时间之后,浏览器应该将其缓存中的页面副本视为陈旧的,而不是使用它,而是从服务器请求页面(如果在线),至少有条件地(如果修改后发送 -等等)。这意味着在对页面的任何新请求之后,接收到的副本根本不应该被缓存。所以是的,你应该设置一个新的过期日期,除非你真的想阻止缓存。

Expires 标头或其meta 模拟需要提及特定时间。还有其他影响缓存的方法,请参阅http://www.mnot.net/cache_docs/

【讨论】:

    【解决方案2】:

    您需要使用某种服务器端脚本语言(如 PHP 或 ASP 或 JSP)来动态设置该日期。这只是一个“提示”,浏览器可能会也可能不会听。

    【讨论】:

      【解决方案3】:

      这是一个提示,告诉浏览器他们应该将 HTML 保存在缓存中直到指定的日期。这意味着,如果浏览器符合要求,那么每当它看到相同的 URL 时,它就不会发出检索它的请求,而是会从缓存中获取 HTML 并显示它。

      因此,您可以安全地为每个请求生成一个新时间,因为缓存页面的浏览器无论如何都不会发出请求,而发出新请求的浏览器将获得更新的提示。

      请注意,尽管没有人强迫浏览器遵守,但他们可能会简单地忽略提示并提出请求。

      【讨论】:

      • 是的,在指定的日期之后,它将使缓存过期并向服务器发出请求。在那之后,接下来的 10 天我应该如何设置到期日期?
      • @NavinLeon,就像你一开始设置它的方式一样......你是如何设置日期的?您是动态生成 HTML 页面吗?
      • 所以正如@RiverC 所说,只能通过服务器端语言使其动态化?
      • @NavinLeon,好吧,如果日期 动态的,那么您需要以某种方式生成它。当客户端读取 HTML 时,它会读取日期。如果这是一个静态 HTML,更好的选择是删除元标记,而是将 Web 服务器配置为与文档一起发送更新的过期标头。
      猜你喜欢
      • 2020-09-11
      • 1970-01-01
      • 2016-11-04
      • 2021-01-29
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 2015-10-07
      相关资源
      最近更新 更多