php实现禁止缓存

添加评论 2011年8月1日

我自己也不是那么明白,不过有些站长会看懂的。
在一般的网页制作中有效的使用缓存能实现非常好的网页快速浏览和流量节约。但是在某些特殊的情况下或许你不希望使客户端浏览器缓存页面。这时候我们该怎么做呢?
这里我先给一段可以使用的php代码:header(”Expires: Mon, 26 Jul 1997 05:00:00 GMT”);
header(”Last-Modified: “.gmdate(”D, d M Y H:i:s”).” GMT”);
header(”Cache-Control: no-cache, must-revalidate”);
header(”Pramga: no-cache”);
我们先来了解下HTTP响应的消息,其实我们可以使用Telnet命令来查看,下面我给出点HTTP响应内容:HTTP/1.1 200 OK
Server:Microsoft-IIS/6.0
Date: Thu, 31 Oct 2008 11:20:53 GMT
Content-Type: text/html
Set-Cookie: name=value; path=/
Cache-control: private
<html>
……
上面的信息中,第一行为状态行,紧跟状态行后面的内容是消息头,接着是一个空行,接着是实体。消息头按照作用可以分为4类,通用信息头、请求头、响应头、实体头。
首先代码第一行是一个实体头。设置Cookie过期是不是也用到了Expires呢?这里设置了一个过去的时间,以此来达到让客户端禁止缓存的目的,这种方法在绝大多数情况下是可用的。但是还是有必要让我们众多的浏览器知道一些其他的信息!
第二行 也是一个实体头,说明了我们文档的更新时间。这个是为了让在客户机已经缓存文件的情况下,向服务器证实现在缓存的文档是最新的。当然如果不是最新的,服务器会发送一个新的版本过来。
第三行从字面意思就很好理解了,禁止客户端缓存,每次请求都必须验证文档是最新的。这也是为什么需要第二行信息的原因了,文档必须为最新的版本。
第四行和第三行一样都是一个通用信息头,而且Pragma只有一个值就是no-cache!它用来指示HTTP1.0客户机不要缓存文档。不过有些 HTTP1.0的浏览器对这个支持不太好。

  1. 还没有评论.想坐沙发?
  1. 还没有 trackbacks
订阅评论