缓存分类
1.强缓存
2.协商缓存
强缓存
1、Expires
2、Cache-Control
协商缓存
1、Last-Modified和If-Modified-Since
2、 ETag和If-None-Match
浏览器缓存的四个位置
- Service Worker Cache
- Memory Cache
- Disk Cache
- Push Cache
强缓存和协商缓存的区别
* 协商缓存跟强缓存不一样,强缓存不发请求到服务器,所以有时候资源更新了浏览器还不知道,但是协商缓存会发请求到服务器,所以资源是否更新,服务器肯定知道。* 大部分web服务器都默认开启协商缓存,而且是同时启用Last-Modified,If-Modified-Since和ETag、If-None-Match* Last-Modified,If-Modified-Since和ETag、If-None-Match一般都是同时启用,这是为了处理Last-Modified不可靠的情况* // 分布式系统里多台机器间文件的Last-Modified必须保持一致,以免负载均衡到不同机器导致比对失败* // 分布式系统尽量关闭掉ETag(每台机器生成的ETag都会不一样)
浏览器缓存判断的流程
面试题
列举三种禁止浏览器缓存的头字段,并写出响应的设置值
参考: