Caching 告诉浏览器不要缓存的正确方法是什么?

Caching 告诉浏览器不要缓存的正确方法是什么?,caching,browser,meta-tags,Caching,Browser,Meta Tags,我有一个网页,总是需要保持最新。我不希望浏览器缓存它。为此,此元标记嵌入到页面中: <meta name="Expires" content="Tue, 01 Jun 1999 19:58:02 GMT"> 然而,一些浏览器似乎忽略了它。Chrome在这方面尤其糟糕,尽管其他浏览器也倾向于做同样的事情 当我从书签栏中选择页面时,大多数情况下,它甚至没有点击服务器,只是从缓存中加载。如果我然后按F5,它将转到服务器并获取新副本 我错过了一些简单的东西吗?我认为expires m

我有一个网页,总是需要保持最新。我不希望浏览器缓存它。为此,此元标记嵌入到页面中:

<meta name="Expires" content="Tue, 01 Jun 1999 19:58:02 GMT"> 

然而,一些浏览器似乎忽略了它。Chrome在这方面尤其糟糕,尽管其他浏览器也倾向于做同样的事情

当我从书签栏中选择页面时,大多数情况下,它甚至没有点击服务器,只是从缓存中加载。如果我然后按F5,它将转到服务器并获取新副本

我错过了一些简单的东西吗?我认为expires meta标记就是这样做的

这发生在Windows 2000上的IIS 5.0上



一句话:看起来HTML代码中的元标记几乎不起任何作用。但是,在HTTP中设置expires标记可以很好地实现这一目的。

使用服务器发送expires头。具体来说,如果您使用的是apache,请看以下内容:

这将帮助您:

<meta http-equiv="cache-control" content="no-cache" />


还可以通过IIS配置静态内容缓存机制;您可以在此处了解如何执行此操作:。

您希望发送一个设置为过去日期的Expires标头(如元标记)

Expires是最受广泛尊重的缓存头,但您也可以使用Last Modified或ETag等工具来获得更具体的控制


元标记是一种设置缓存协议的过时方法,大多数元缓存控制属性都不推荐使用(例如,无缓存)。很多用户代理都会忽略它们。

我曾经读过一篇关于浏览器缓存和一般缓存的文章:

它非常详细地解释了什么有效,什么无效,什么最好


总之,有很多方法(html标记、HTTP头)和缓存类型(浏览器代理、网关)

发送
缓存控制:在响应头中没有缓存。
请指定您使用什么平台来做出更好的响应。


正如当选W3C标签成员Andrew Betts在这里所说的,这就是您真正需要的


使用此选项,您将不需要pragma或expires。事实上,上面的命令将覆盖Expires命令。

他们为什么投票否决我?答案没有错,因为这不是最有效的方法。最好用小写字母键入HTML。