Html / php页面被缓存(客户端)不应该

时间:2009-04-14 15:44:35

标签: php html

网址位于:http://www.thexsoft.com/DownloadFolder/download.php?file=P2PTransfer

这个页面基本上是我设置url来下载我发布的某个问题的一种方式。这个页面永远不应该被缓存,但它似乎仍然是缓存。

我已设置以下项目:

<meta http-equiv="expires" content="0" >
<meta http-equiv="cache-control" content="no-cache" >
<meta http-equiv="pragma" content="no-cache" >
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" > 

当我没有fastclick.net广告代码时,页面上的html代码会100%验证,但我现在已将其保存,因为它通常在。

3 个答案:

答案 0 :(得分:5)

Pragma:no-cache仅在通过安全连接(https)使用时阻止缓存。 Pragma:no-cache META标记与Expires相同:如果在非安全页面中使用,则为-1。该页面将被缓存,但标记为立即过期。

http://support.microsoft.com/kb/234067

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

答案 1 :(得分:2)

是的,在某些情况下,浏览器会积极地缓存,尤其是IE6。您需要检查服务器正在发送的http标头,如果不是问题,请尝试使用cachebusting URL(插入一个随机/基于时间的get变量),以使浏览器认为它是一个新的URL。

答案 2 :(得分:2)

我使用Firebug检查了标题:

Cache-Control: max-age=1209600
Expires: Tue, 28 Apr 2009 18:49:15 GMT

在PHP中,您可以使用header()发送HTTP标头。

header('Pragma: no-cache');
header('Expires: -1');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');