PHP Squid中可緩存的動態(tài)網(wǎng)頁設(shè)計
更新時間:2008年09月17日 13:28:34 作者:
有時我們需要控制主頁之類的網(wǎng)頁過期時間.但我們比如使用的是Chinacache的CDN,那要怎么樣設(shè)計才能讓他緩存我的內(nèi)容.
當(dāng)然,前提要先打開CDN中一個功能reload_into_ims on.這樣用戶發(fā)送過來no-cache也不怕了.因為這樣會給給no-cache轉(zhuǎn)成If-Modified-Since .所以我們寫程序主要是對If-Modified-Since控制就好了.記的,緩存系統(tǒng)架構(gòu)中計中最好是后端來控制,所以最好的方法是程序來管理過期.呵,我只會php,就用php寫一個,別的程序也是一樣
見我下面的程序,呵呵,5分鐘過期.
<?php
$headers = apache_request_headers();
$client_time = (isset($headers['If-Modified-Since']) ? strtotime($headers['If-Modified-Since']) : 0);
$now=gmmktime();
$now_list=gmmktime()-60*5;
if ($client_time<$now and $client_time >$now_list){
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $client_time).' GMT', true, 304);
exit(0);
}else{
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $now).' GMT', true, 200);
}
?>
見我下面的程序,呵呵,5分鐘過期.
<?php
$headers = apache_request_headers();
$client_time = (isset($headers['If-Modified-Since']) ? strtotime($headers['If-Modified-Since']) : 0);
$now=gmmktime();
$now_list=gmmktime()-60*5;
if ($client_time<$now and $client_time >$now_list){
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $client_time).' GMT', true, 304);
exit(0);
}else{
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $now).' GMT', true, 200);
}
?>
相關(guān)文章
Windows下PHP開發(fā)環(huán)境搭建教程(Apache+PHP+MySQL)
這篇文章主要為大家詳細(xì)介紹了Windows下PHP開發(fā)環(huán)境搭建教程:Apache+PHP+MySQL,具有一定的實用性和參考價值,感興趣的小伙伴們可以參考一下2016-06-06PHP數(shù)學(xué)運(yùn)算函數(shù)大匯總(經(jīng)典值得收藏)
這篇文章主要介紹了PHP數(shù)學(xué)運(yùn)算函數(shù),匯總分析了常見的PHP數(shù)學(xué)運(yùn)算函數(shù)的功能,使用方法與注意事項,需要的朋友可以參考下2016-04-04PHP數(shù)據(jù)集構(gòu)建JSON格式及新數(shù)組的方法
自己寫了個PHP結(jié)果集轉(zhuǎn)換成JSON格式的函數(shù),可以直接調(diào)用;需要的朋友可以參考下2012-11-11php中拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載
php中拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載方法, 需要的朋友可以參考下2012-07-07php使用json-schema模塊實現(xiàn)json校驗示例
這篇文章主要介紹了php使用json-schema模塊實現(xiàn)json校驗,結(jié)合實例形式分析了json-schema模塊的安裝及使用json-schema模塊進(jìn)行json校驗的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09