一、都有哪几种缓存
web缓存分为很多种,比如数据库缓存、代理服务器缓存、CDN缓存,以及浏览器缓存。
二、浏览器缓存
几种不同缓存的使用1、资源加载的顺序
先查找内存缓存、然后查找硬盘缓存、然后发起网络请求加载资源,并依据响应头进行缓存工作
2、status code 的区别
200 memory : 不访问服务器,关闭浏览器后资源被释放 ,强缓存
200 disk:不访问服务器,关闭浏览器后资源依然存在,强缓存
304 not modify: 访问服务器,发现数据没有更新,服务器返回此状态码。然后从缓存中读取数据。协商缓存
200 : 返回资源 size 从服务器端下载最新资源
3、memory 和 disk 的使用场景
一般 js 常使用 memory,而 css 常使用 disk。因为,如果把脚本存在磁盘中,在执行时会把该脚本从磁盘中提取到缓存中来,这样的IO开销比较大,有可能会导致浏览器失去响应。
三、浏览器缓存的使用原理
1、meta 标签
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache" />
有浏览器不兼容,所以大部分是使用响应头的
2、http response header
优先级如下:
a、ETag/If-None-Match + Cache-Control
b、Last-Modified/If-Modified-Since + Cache-Control
a、Expires Cache-Control选择更多,设置也更细致,且使用了相对时间,所以比 http 1.0 中的 Expires 优先级更高
cache-control 流程参考: https://segmentfault.com/a/1190000008547416
http://www.cnblogs.com/lyzg/p/5125934.html
网友评论