关于PHP中的图片缓存技术之前一直没有考虑过,结果第一次出去面试的时候就苦逼了,哑口无言呀。。。。
PHP的图片缓存需要在服务器端做好配置,就拿APACHE环境下来说,开启Apache的headers模块支持后,可以在.htaccess文件中添加如下代码,用于设置图片的HTTP缓存和有效期
<IfModule mod_headers.c>
<FilesMatch ".(gif|jpg|jpeg|png|ico)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
上面的代码设置了网站的图片使用为期一周的HTTP缓存,同样的,你也可以给js或者css文件加上http缓存。
怎么看你的图片被缓存了呢,使用firebug或者其他网页开发工具查看你的网络即可,看到下图的304提示的就是了,这个表示经过服务器认证(一般是比较ETag)该图片任然有效,继续使用本地缓存。个别游览器在缓存有效期内,不再像服务器发送任何请求,直接使用本地缓存,在HTTP CATCH 中是看不到请求信息的。
request消息告诉缓存器缓存该图片一周或者多少时间,过期后游览器重新将过期的图片存入缓存。清空游览器缓存后,自然就是去服务器重新获取了。
另外游览器也是可以设置为强制不适用缓存&