<FilesMatch "\.(gif|jpg|png|js|css">ExpiresDefault "access plus 10 years"</FilesMatch>
那么浏览器访问此apache上的静态资源后,浏览器就会把图片和该服务器上的js和css文件缓存在浏览器里。
我们看看被缓存的静态资源是如何被使用的,如下图所示:
当http的响应码是304的时候,那么浏览器就会从缓存里读取资源了,这里有的朋友可能会感到奇怪为
什么缓存的资源还要发送个http请求了?理解这个我们就要了解下缓存的机制,缓存的含义是临时保存某
些东西,既然是临时保存,那么就应该有个保存的有效期,我们定义缓存的方式是通过http完成的,那么
按道理检查缓存是否过期也应该是http来决定的,因此每次使用缓存时候我们要发个请求到服务端,服务
端会检查下资源是否过期了,如果没有过期,服务端返回个304的响应码,304的返回响应是没有http报文
体的,所以这个http请求的返回数据是非常小的,因此这个http效率还是很高的,如果服务端发现资源过
期了那么服务端就会把新资源返回给浏览器了,其实这个检测资源是否过期的请求有个专有名词叫做条件
Get请求。至于服务端是如何完成检查操作,本系列在讲web前端优化时候会详细阐述,这里就不深入了。
看到这里估计有朋友又有疑问了,为什么缓存是否过期不能在浏览器端来做了?这主要是浏览器做这个检
查非常不准,因为用户的电脑时钟不一定准确,或者用户电脑时钟和服务端不一致,如果再加上时区那么
就更加麻烦了,所以缓存失效最好是在服务端进行,这样缓存的有效期的准确性才能得到保证。html5的出现,浏览器缓存的能力大大增强了,不过使用html5技术进行缓存我还没有深入研究过,所以这里也不讲述
了,有兴趣的朋友可以自己研究下。
专业做网站建设公司网站制中卫网站设计公司广州app开发苏州公司网站建设深圳开发小程序网站建设时间黄石网站建设泉州网站制作东莞微信小程序开发南京网站设计公司兰州网站制作石家庄网站设计app 开发网站建设公司广州门户网站制作北京网站制作公司大型网站开发泰州网站设计重庆网页制作seo网站设计乌鲁木齐网站建设西安网站开发公司舟山网站建设网站设计价格企业网站建设套餐岳阳网站建设福州网站设计公司微信定制开发广西网站建设芜湖网站建设