当前位置 : 主页 > 网络编程 > PHP >

php header缓存的示例

来源:互联网 收集:自由互联 发布时间:2021-07-03
?php$interval=5;session_cache_limiter('private_no_expire'); //在session之后处理缓存, 需要加上这个.session_start(); if ($_SERVER['HTTP_IF_MODIFIED_SINCE']){ // HTTP_IF_MODIFIED_SINCE即下面的: Last-Modified,文档缓存时间
 
<?php
$interval=5;
session_cache_limiter('private_no_expire'); //在session之后处理缓存, 需要加上这个.
session_start();
  
if ($_SERVER['HTTP_IF_MODIFIED_SINCE']){
    // HTTP_IF_MODIFIED_SINCE即下面的: Last-Modified,文档缓存时间.
    // 缓存时间+时长. 
    $ctime = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])+$interval;
           
    // 当大于当前时间时, 表示还在缓存中... 释放304
    if($ctime > time()){
       header('HTTP/1.1 304 Not Modified');
       exit();
    }
}
  
// 上面这段代码未使用任何其它库, 所以可以放在首行.
   
header("Pragma: private");
header("Cache-Control:max-age=$interval, pre-check=$interval"); 
header("Expires: " . gmdate("D, d M Y H:i:s",time()+$interval)." GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
   
   
echo date('Y-m-d H:i:s'); // 注意看是不是差5秒刷新一次.
echo ' - <a href="?a=">Link</a><br />';
var_dump($_SERVER['HTTP_IF_MODIFIED_SINCE']);
  
// IE11 ff38 chrome测试通过.

网友评论