php是最好的语言

php之浏览器缓存

    之前的nginx中expires的配置就属于浏览器缓存,我们可以配置在我们想要缓存的指定文件路径下,也可以使用在代码里面做缓存,下面是代码:

$cache_time = 90;  

$modified_time = @$_SERVER['HTTP_IF_MODIFIED_SINCE'];  


if( strtotime($modified_time)+$cache_time > time() ){   

    header("HTTP/1.1 304");   

    exit;   

}   

//发送Last-Modified头标,设置文档的最后的更新日期。   

header ("Last-Modified: " .gmdate("D, d M Y H:i:s", time() )." GMT");   

   

//发送Expires头标,设置当前缓存的文档过期时间,GMT格式,我们使用的是GMT+8时区  

header ("Expires: " .gmdate("D, d M Y H:i:s", time()+$cache_time )." GMT");   

   

//发送Cache_Control头标,设置xx秒以后文档过时,可以代替Expires,如果同时出现,max-age优先。   

header ("Cache-Control: max-age=$cache_time"); 

echo '<br>';  

echo time();


这里需要了解三种浏览器刷新的机制ctrl+F5,F5和单击浏览器的“转到”或者通过超链接访问,这三种的机制。

第一种:缓存都不起作用。

第二种:Last-Modified起作用,

第三种:expires起作用


还有一种缓存协商方法就是ETag,ETag是文件标识,通过If-None-Match来判断,是为了弥补Last-Modified的缺点的,在nginx安装ETag模块,就可以使用了.......

作者:xTao 分类:LNMP 浏览:2500 评论:0