HTTP缓存(强缓存和协商缓存)

441 阅读1分钟

缓存可分为强缓存和协商缓存。

  1. 浏览器进行资源请求时,会判断response headers是否命中强缓存,如果命中,直接从本地读取缓存,不会向服务器发送请求,
  2. 当强缓存没有命中时,会发送请求到服务端,判断协商缓存是否命中,如果命中,服务器将请求返回,不会返回资源,告诉浏览器从本地读取缓存。如何不命中,服务器直接返回资源
  3. 区别: 强缓存命中,不会请求服务器,直接请求缓存;协商缓存命中,会请求服务器,不会返回内容,然后读取缓存;

image.png

强缓存

强缓存又分为Expires 和 Cache-Control

Expires的时间是相当于服务器的时间,是一个绝对时间。

Expires,该值是一个GMT时间格式个字符串,浏览器进行第一次请求时,服务器会在返回头部加上Expires,下次请求,如果在这个时间之前则命中缓存。

image.png

Cache-Control是一个相对于本地电脑的相对时间差,只要不修改本地时间,一般来说比较准确。

Cache-Control ,该值是利用max-age判断缓存的生命周期,是以秒为单位,如何在生命周期时间内,则命中缓存

image.png

协商缓存

协商缓存,就是强缓存过期了,但是在服务器上对资源进行对比之后,该部分内容没有修改,这个时候变回返回304,表示可以继续使用本地缓存。

image.png

小结

image.png