搜索

首页  >  问答  >  正文

php - 利用http的Last-Modified缓存,读取缓存文件?

最近研究了一下利用http的Last-Modified缓存机制,可以让浏览器读取缓存文件,
$num = 4; //模拟服务器数据变化,判断浏览器是否需要读取缓存文件
if($num==4) {

  if( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ){  
    $browserCachedCopyTimestamp = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);  
     if ( ( $browserCachedCopyTimestamp + 3600 ) > time() ) {  
        header("HTTP/1.1 304");  
        exit(1);  
     }  
  }  

}else{

    header('Last-Modified: '.gmdate('D, d M Y H:i:s',time())." GMT");  
    header('Expires: '.gmdate('D, d M Y H:i:s', time() + 3600)." GMT");  
    header("Cache-Control:max-age=3600");  
   
    for( $i=1; $i < 10 ; $i++ ){  
       echo "$i|";      
    }  

}
上面我测试了可以读取缓存文件但是刚刚在网上看了一下说是

【Last-Modified和ETags请求的http报头一起使用,服务器首先产生Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修改,来决定文件是否继续缓存】
为什么要Last-Modified和ETags一起使用啊。搞不懂。

天蓬老师天蓬老师2748 天前646

全部回复(1)我来回复

  • 大家讲道理

    大家讲道理2017-05-16 13:16:43

    引用别人的一篇回答链接描述

    回复
    0
  • 取消回复