PHP Squid中可缓存的动态网页设计
程序员文章站
2022-03-23 07:50:09
当然,前提要先打开cdn中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成if-modified-...
当然,前提要先打开cdn中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成if-modified-since .所以我们写程序主要是对if-modified-since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期.呵,我只会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);
}
?>