用PHP控制用户浏览器缓存!

本文介绍了一种利用HTTP缓存机制来优化PHP程序的方法。通过发送特定的HTTP头部信息,如ETag,可以让浏览器使用缓存的数据,从而减轻服务器的压力,并提高页面加载速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    你写的php程序是否高效?你是否会担心自己的程序太庞杂,执行速度很慢?你是否用过php动态生成图片?
   其实每种浏览器都有缓存策略,会暂时将每一个浏览过的文件缓存在一个特殊的文件夹里。我们就可以在用户重复提交页面请求的时候,告诉用户这个页面没有改变,可以调用缓存。 那我们怎么知道用户有没有这个页面的缓存数据呢? 其实浏览器在发送请求的时候会先发送http头,一般象这样: 

Date: Sun, 30 Jul 2006 09:18:11 GMT 
Content
-Type: image/gif 
Last
-Modified: Wed, 19 Jul 2006 07:40:06 GMT 
ETag
: "8c55da8d6abc61:2327" 
Content
-Length: 14757

其中Last-Modified: Wed, 19 Jul 2006 07:40:06 GMT
ETag: "8c55da8d6abc61:2327"
就是有关页面的缓存信息的。然后如果服务器返回的响应代码不是HTTP 200 (OK),而是 304的话,浏览器就会从缓存中读取数据。
    根据这个原理,我写了一个函数,这个函数可以用在不经常更新或者需要经常刷新的页面,可以大大减轻服务器的负担,因为它如果发现客户端有缓存,就向客户端发送一个304响应,然后停止程序的执行。

<?php 
cache(); 
echo date("Y-m-d H:i:s");  

function cache() 
{
//author:Longbill ( www.longbill.cn ) 
       $etag = "eeee";  //标记字符串,可以任意修改 
       if ($_SERVER['HTTP_IF_NONE_MATCH'== $etag
       { 
              
header('Etag:'.$etag,true,304); 
              
exit
       } 
       
else header('Etag:'.$etag); 

?>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值