请大家点评一下这个php浏览器缓存类!!!

服务器并发太高,服务器资源和带宽资源不足时,请记住伟大的浏览器缓存吧!也许你依然不以为然,觉得提高服务器的吞吐量有很多办法,比如在服务器端做缓存,把页面静态化,等等。但是我相信有一个东西你应该会在意,没错,就是带宽,在意吧?如果能利用好浏览器缓存,将可以降低你的宽带资源,这样不是很好吗。

请大家点评一下这个php浏览器缓存类!!!

  public static function browser_http_cache( $type = 'nocache' , $interval =0, $mktime = '' , $etag = '' ){  
    if ( $type == 'nocache' ){  
        header('Expires: -1' );  
        header('Pragma: no-cache' );  
        header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0' );  
    }else {  
        if (isset( $_SERVER['HTTP_IF_NONE_MATCH']) && $etag && $_SERVER ['HTTP_IF_NONE_MATCH'] == $etag ){  
            header('HTTP/1.1 304 Not Modfied');  
        }elseif (isset( $_SERVER [ 'HTTP_IF_MODIFIED_SINCE' ]) &&  $mktime  &&  $_SERVER ['HTTP_IF_MODIFIED_SINCE'] ==  gmdate('r',$mktime ).'GMT'){  
            header('HTTP/1.1 304 Not Modfied');  
        }else {  
            if ($mktime){  
                $gmtime  =  gmdate('r',$mktime + $interval).'GMT';  
                header('Expires:'.$gmtime);  //本地缓存目录中,文件过期的时间(由服务器指定具体的时间)
            }  
            if ($type == 'public' ){  //public可以在任何地方缓存
                header('Cache-Control: public,max-age='.$interval ); // max-age内容能够被缓存的时间
            }elseif ( $type == 'private' ){  //private只能被浏览器缓存
                header('Cache-Control: private,max-age='.$interval.',s-maxage=0' );  
            }elseif ( $type == 'none'){  
                header('must-revalidate,proxy-revalidate');  //告诉浏览器当前页面不进行缓存,每次访问的时间必须从服务器上读取最新的数据
            }  
        } 
		if($type='cachetime'){
			$cache_time = $interval; //十分钟缓存
			$modified_time = @$_SERVER['HTTP_IF_MODIFIED_SINCE']; 
			if( strtotime($modified_time)+$cache_time > time() ){ 
				header("HTTP/1.1 304 Not Modfied"); 
				exit; 
			} 
			 header("Last-Modified: ".gmdate("D, d M Y H:i:s", time() )." GMT");  		
		
		} 
        $mktime && header( 'Last-Modified: ' . gmdate ( 'r' , $mktime ) . ' GMT' );  
        $etag    &&  header( 'ETag: ' . $etag );  
    }  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值