yang-xianzhu / astro-blog

🚀-基于Astro搭建的个人博客
https://yang-xianzhu.github.io/
5 stars 0 forks source link

面试官: 说说强缓存和协商缓存? #13

Open yang-xianzhu opened 1 year ago

yang-xianzhu commented 1 year ago
  1. 强缓存

    • 强缓存:指的是让浏览器强制缓存服务端提供的资源

    • 可以通过更改浏览器的Cache-controlExpires字段设置缓存的时间。

  2. 协商缓存

    当服务端发现资源最后修改时间和if-modified-since值相等,代表资源从该时间后再未改变过。

    服务端于是返回304(Not Modified)状态码,表示资源没有改变,并且响应体为空。浏览器拿到后,就知道原本可能过期的缓存其实还可以继续使用。如果资源改变了,就会返回200,且响应体带上最新资源。

    Etag的值没有规定一般是文件hash,当然你也可以设置版本号之类的去对比。