久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

使用瀏覽器緩存來加快站點的訪問速度

 xf_baby 2014-01-21
其實瀏覽器也有緩存功能,也可以利用瀏覽器的緩存功能來減少服務(wù)器的負(fù)載,,提高網(wǎng)站吞吐量,? 
 
當(dāng)使用抓包工具查看http狀態(tài)時,可以看到200,,304,,from cache之類的標(biāo)識,也許你也早已注意到了他們,,并明白他們的意思,。但是,你是否想過在你的程序中加入代碼主動告訴瀏覽器,,更好地利用瀏覽器緩存,。
 
備注:本章所有案例都是使用chrome 17.0.963.79 m瀏覽器,測試方式為每次打開瀏覽器新窗口的方式測試,,而不是F5刷新,。 
先做一個沒有緩存的頁面,叫做nocache.php,。

代碼如下: 
 <?php   
echo time();   
?>  
用瀏覽器打開,,可以看到每次打開頁面,都是打印新的時間,,返回的狀態(tài)碼是200,,表明在默認(rèn)情況下,瀏覽器沒有使用緩存,。
再做一個頁面,,叫做last_modified.php,。
代碼如下: 
<?php   
$cache_time = 3600;   
$modified_time = @$_SERVER['HTTP_IF_MODIFIED_SINCE'];   
if( strtotime($modified_time)+$cache_time > time() ){   
    header("HTTP/1.1 304");   
    exit;   
}   www.jbxue.com
header("Last-Modified: ".gmdate("D, d M Y H:i:s", time() )." GMT");    
echo time();   
?>  
用瀏覽器打開,我們可以看到第一次打開,,返回的狀態(tài)碼為200,,打印時間為最新時間。然后我們第二次打開,,可以看到狀態(tài)碼為304,,時間和剛才的時間一樣,表明我們是使用到緩存了,。我們刪除last_modified.php文件,,然后第三次打開頁面,瀏覽器返回404錯誤,,可見Last-Modified雖然使用了緩存,,但是每次打開頁面依然需要向服務(wù)器發(fā)起http請求,瀏覽器根據(jù)用戶的$_SERVER['HTTP_IF_MODIFIED_SINCE']來判斷瀏覽器的內(nèi)容是否過期,,沒過期的話返回304狀態(tài),,瀏覽器內(nèi)容從緩存中讀取。
我們再做一個頁面,,叫做 expires.php
代碼如下: 
<?php   
$cache_time = 3600;   
header("Expires: ".gmdate("D, d M Y H:i:s", time()+$cache_time )." GMT");      
echo time();   
?>  
用瀏覽器打開,,我們可以看到第一打開,返回的狀態(tài)為200,,時間為最新的時間,。然后我們第二次打開,可以看到狀態(tài)碼依然是200,,時間依然是舊的時間,,Size欄目顯示為from cache,,表示內(nèi)容是直接從瀏覽器讀取,。我們刪除expires.php文件,然后第三次在新窗口中打開,,可以看到返回200狀態(tài)碼,,打印時間依然是舊的,Size依然提示為from cache,,由此可見,,設(shè)置了Expires,就算刪除頁面,,瀏覽器端依然可以顯示,,表明瀏覽器根本就沒有向服務(wù)器發(fā)起http請求。 
      到這里,,也許你會感覺Expires比Last-Modified緩存效果更好是吧,,因為本地有緩存數(shù)據(jù)時,,不需要向服務(wù)器發(fā)起http請求,服務(wù)器的并發(fā)數(shù)會明顯的減少,,可以少處理很多http請求,。但是Expires也有缺點,那就是設(shè)置的過期時間是服務(wù)器的時間,,而不是你本地的時間,,這樣如果服務(wù)器時間跟你本地時間不一致時,可能并沒有起到緩存的效果,。HTTP/1.1為了彌補(bǔ)Expirse的不足,,引入了Cache-Control標(biāo)記。格式如下Cache-Control: max-age=<second>,,這個時間是相對瀏覽器本地時間,,所以更加準(zhǔn)確。

再做一個頁面,,叫做cached_control.php
代碼如下: 
<?php   
$cache_time = 3600;   
header("Cache-Control: max-age=".$cache_time);   
echo time();   
?>  
測試可以得到設(shè)置Expires一樣的效果,,也就是緩存后,刪除文件,,依然在瀏覽器緩存有效期內(nèi)可以正常訪問頁面,。 
好了,over了,,下次當(dāng)你服務(wù)器并發(fā)太高,,服務(wù)器資源和帶寬資源不足時,請記住偉大的瀏覽器緩存吧,!也許你依然不以為然,,覺得提高服務(wù)器的吞吐量有很多辦法,比如在服務(wù)器端做緩存,,把頁面靜態(tài)化,,等等。但是我相信有一個東西你應(yīng)該會在意,,沒錯,,就是帶寬,在意吧,?如果能利用好瀏覽器緩存,,將可以降低你的寬帶資源,這樣不是很好嗎,。 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多