一:概念说明
Expries:网页的cache过期时间,到指定日期网页cache失效
Last-Modified:网页的最新更新时间
Cache-Control 缓存控制
no-cache:不缓存网页
no-store:不缓存网页,如果有则删除之
must-revalidate:使之前,服务器响应使用cache生存时间生效
post-cache: IE5.0的”懒惰”更新开关,设置为0,表示及时更新.
pre_cache:IE5.0的”懒惰”更新开关,设置为0,表示及时更新.
max-age:同expires,优先级高于Expires,会覆盖expires的值。
Pragma
no-cache:不缓存网页,为了兼容浏览器,有些浏览器设置些指令有效。
注:所有时间的设置都采用GMT格式,这是http协议里规定的 http时间(HTTP-date) 格式
二:PHP输出控制
A:输出不缓存
header("Expires:过去的一个时间");
header("Last-Modified:当前时间");
header("Cache-Control:no-stroe,no-cache,must-revalidate,post-check=0,pre-check=0");
header("Pragma:no-cache"); //反向代理可以不缓存网页
示例:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
//1997年7月26日 cache失效,因为时间早已经过去,所以cache失效.
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
//cache更新时间
header("Cache-Control: no-cache, must-revalidate, no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
//不缓存网页
header("Pragma: no-cache");
//不缓存网页
B:输出永久缓存
header("Expires:未来的一个时间");
header("Last-Modified:当前时间");
C:输出缓存一部分时间后失效
header("Expires:失效的时期");
或者:header("Cache-Control:max-age=秒数");
header("Last-Modified:当前的时间");