web 缓存之浏览器缓存

2019-01-19  本文已影响0人  good__day

一、都有哪几种缓存

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

上一篇下一篇

猜你喜欢

热点阅读