Open XiZev opened 3 years ago
当服务器返回HTTP响应头给浏览器时,浏览器是通过响应头中的Cache-Control字段来设置是否缓存该资源
通过Cache-Control中的Max-age参数来设置的缓存过期时间。
如果缓存过期了,浏览器则会继续发起网络请求,并且在HTTP请求头中带上:
If-None-Match:"4f80f-13c-3a1xb12a"
服务器收到请求头后,会根据If-None-Match的值来判断请求的资源是否有更新。
如果没有更新,就返回304状态码,相当于服务器告诉浏览器:“这个缓存可以继续使用,这次就不重复发送数据给你了。”
如果资源有更新,服务器就直接返回最新资源给浏览器。
主要原因是第一次加载页面过程中,缓存了一些耗时的数据。 DNS缓存 和 页面资源缓存这两块数据是会被浏览器缓存的