HTTP缓存策略,我按照我的理解,分为3种:
- 不缓存
- 强缓存
- 协商缓存(也称为:对比缓存)
第1种,不缓存,即:HTTP请求不使用缓存,浏览器每次向服务器请求最新的数据
优点:每次获取到的数据都是最新的,准确的
缺点:频繁请求服务器,服务器压力过大
第2种,强缓存,即:浏览器使用本地缓存,不向服务器发送请求
优点:不请求服务,减少服务端压力
缺点:得到的数据不是最新准确的,还是浏览器本地数据,可能该数据已经过期了
第3种,协商缓存,解决了上述2种缓存方案的缺点
协商缓存:浏览器向服务器发送一个请求,服务器会检查该资源是否有更新,如果有更新,就返回最新的资源,状态码200,如果没有更新,状态码304,不返回资源,浏览器从缓存中读取资源。因为有个协商(对比)的过程,所以叫做协商(对比)缓存。
如何设置协商缓存?
ETag优先级更高