搜尋

首頁  >  問答  >  主體

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一起使用啊。搞不懂。

天蓬老师天蓬老师2780 天前690

全部回覆(1)我來回復

  • 大家讲道理

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

    引用別人的一篇回答連結描述

    回覆
    0
  • 取消回覆