一:概念说明
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,26Jul199705:00:00GMT");
//1997年7月26日cache失效,因为时间早已经过去,所以cache失效.
header("Last-Modified:".gmdate("D,dMYH: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:当前的时间");