众所周知,浏览器会依据 http 的请求头缓存相应资源,当资源过期的时候,会再次向服务器发出请求校验当前的缓存是否过期,如果没有过期的话,服务器就会响应一个 304 请求。
正常情况下,该请求仅会在缓存过期的时候发出。但是在以前,当用户点击浏览器的刷新按钮时,尽管资源没有过期,浏览器还是会进行重新校验,即会获得 304 请求,这意味着额外的服务器开销/压力。
所以在 2017 年的时候,facebook 团队就向 chrome 等浏览器厂商提出了请求。
chrome 就改成刷新不发条件请求(未过期的情况),firefox 则实现了 Cache-Control: immutable
协议,safari 两者都实现了。