协商缓存与强缓存的区别,你必须知道!

3 min read

协商缓存和强缓存是Web浏览器中HTTP缓存机制中的两个概念。

强缓存指的是在发起HTTP请求之前,浏览器会先检查缓存中是否存在该资源的副本,如果存在并且没有过期,那么直接从缓存中读取。如果不存在或者已经过期,那么就会重新发起HTTP请求获取新的资源,并更新缓存。强缓存是利用HTTP响应头中的Expires和Cache-Control字段进行设置。

协商缓存指的是在强缓存失效的情况下,浏览器会再次向服务器发起HTTP请求,但是这次请求会携带缓存相关的信息(如ETag和Last-Modified等),服务器会根据这些信息来判断是否需要返回新的资源。如果服务器认为资源没有更新,会返回一个304 Not Modified响应告诉浏览器直接使用本地缓存中的资源。协商缓存是利用HTTP响应头中的Last-Modified和ETag字段进行设置。

协商缓存和强缓存的区别主要在于是否需要从服务器获取资源。强缓存不需要从服务器获取资源,而协商缓存需要向服务器发送请求以获取资源的最新状态。