日期:2014-05-16  浏览次数:20936 次

利用apache的mod_headers模块实现文件缓存
一.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文档

rfc2616