第280天 请说说协商缓存和强缓存的区别? #1366 [我也要出题](http://web.haizlin.cn/interview/)
Activity
gostfather commentedon Feb 28, 2020
请求头中
强缓存cache-control设置max-age=315360000,
协商缓存通过etag、last-modified判断和服务端交互
zhaofeipeter commentedon Jul 28, 2020
强缓存根据给定的时间来判断是否使用缓存,不够灵活,浏览器有时候会用到过期资源
协商缓存根据服务端资源是否更新来确定是否使用缓存,能确保浏览器不会用到过期资源
d4c-27 commentedon Apr 12, 2022
强缓存:不会向服务器发送任何请求,直接从本地缓存中读取文件并返回Status Code: 200 OK
协商缓存: 向服务器发送请求,服务器会根据这个请求的request header的一些参数来判断是否命中协商缓存,如果命中,则返回304状态码并带上新的response header通知浏览器从缓存中读取资源;
QQhuan commentedon Apr 12, 2022
缓存减少了直接从源服务器获取资源次数,减少服务器负载,加快了的响应,提高用户的体验
缓存策略:通常浏览器缓存策略分为两种:强缓存和协商缓存,并且缓存策略都是通过设置 HTTP Header 来实现的。
强缓存:强缓存可以通过设置两种 HTTP Header 实现:
Expires
和Cache-Control
。强缓存表示在缓存期间不需要请求,state code 为 200。