转自: http://www.huomo.cn/sysapp/article-ae4d.html
Apache中的mod_expires.c模块可以使指定文件缓存到客户的电脑上,这样这些文件不必每一次都重新访问服务器,从而节省大量的服务器资源,使访问速度也加快了N多
<IfModule mod_expires.c>
ExpiresActive on
#now 立即访问服务器,不缓存
ExpiresByType application/xml "now"
ExpiresByType application/xhtml+xml "now"
ExpiresByType p_w_picpath/jpeg "access plus 30 days"
ExpiresByType p_w_picpath/png "access plus 30 days"
ExpiresByType p_w_picpath/x-icon "access plus 30 days"
ExpiresByType text/css "access plus 30 days"
ExpiresByType text/csv "access plus 30 days"
ExpiresByType text/html "access plus 30 days"
ExpiresByType text/plain "access plus 30 days"
ExpiresByType text/x-c "access plus 30 days"
ExpiresByType text/x-java-source "access plus 30 days"
ExpiresByType application/pdf "access plus 30 days"
ExpiresDefault "now"
</IfModule>
[注意]
1) 打开新窗口
如果cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。
而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:Cache-control: max-age=5 表示当访问此网页后的5秒内再次访问不会去服务器
2) 在地址栏回车
如果cache-control值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。
如果cache-control值为no-cache,那么每次都会访问。
如果cache-control值为max-age,则在过期之前不会重复访问。
3) 按后退按扭
如果cache-control值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问
4) 按刷新按扭
无论为何值,都会重复访问,客户端发送的请求中均是max-age=0,表示validate操作,发送请求到服务器
要求检查cache,再更新cache,一般得到的是304 Not Modified,表示没变动。
#######
一些文件要可以覆盖默认的其他设置:
<FilesMatch ^(Client|revision).swf$>
ExpiresActive On
ExpiresDefault "accesss plus 3 hour"
</FilesMatch>
<FilesMatch ^cur.js$>
ExpiresActive On
ExpiresDefault "accesss plus 2 hour"
</FilesMatch>