缓存的作用
缓存机制会将一些资源保存到本地,这样一来,当发送网络请求资源时,浏览器便可直接向缓存中读取数据,不需要再次发送请求
缓存能减少网络请求次数,提高页面响应速度,是性能优化的一种手段
强缓存
强缓存不会向服务端发送请求,客户端直接从缓存中读取资源
当浏览器首次向服务端请求资源时,服务端如果认为该资源该设置缓存,会在response的header里通过cache-control等字段来设置该资源为强缓存
当浏览器后续再次请求资源时,会先获取该资源的header信息,判断该资源是否命中强缓存。如果该资源命中了强缓存,浏览器直接从缓存中获取资源,此次请求不会和服务端进行通信
协商缓存
协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务端发起请求,由服务端根据缓存标识来决定是否使用缓存
浏览器携带第一次请求服务端返回的有关缓存的header字段信息/缓存标识(last-modified, Etag),再次发送请求。服务端根据该缓存标识判断客户端缓存和服务端资源最新状态是否一致,如果一致,说明缓存为最新资源,服务端返回304状态码,客户端直接从缓存中获取资源;如果缓存不是最新资源,服务端会返回200状态码,最新的资源和缓存标识