一.cache-control Cache-Control是http协议1.1中支持的缓存字段,指定请求和响应遵循的缓存机制。 详见rfc2616 14.9(Cache-Control) 其中一个最基础的策略是,在响应头中设定:
Cache-control: max-age=[secs]
[secs]是cache在客户端存活的秒数,例如 Cache-control: max-age=1800 表明cache的时间是半小时,只使用这样一个声明就可以使浏览器能够将这个HTTP响应的内容写入临时目录做cache。当用户第二次请求被缓存的资源时,浏览器将直接给出响应,不再从服务器请求,直到cache过期。 二.如何通过apache实现max-age的设置 可以通过mod_headers模块,实现max-age的设置 1)确保安装了mod_headers 2)在httpd.conf 中设置LoadModule headers_module modules/mod_headers.so 3)使用例子
<IfModule mod_headers.c>
# htm,html,txt类的文件缓存一个小时
<filesmatch "\.(html|htm|txt)$">
header set cache-control "max-age=3600"
</filesmatch>
# css, js, swf类的文件缓存一个星期
<filesmatch "\.(css|js|swf)$">
header set cache-control "max-age=604800"
</filesmatch>
</IfModule>
其实mod_headers的功能远强大于此,它可以设置http请求头的任一字段,如果你的请求头和足够了解,可以通过mod_headers实现更多缓存策略。 参考: mod_headers文档