其他分享
首页 > 其他分享> > 强缓存和协商缓存

强缓存和协商缓存

作者:互联网

缓存

  1. 静态资源访问时,正确设置资源的缓存可以提高用户体验和网站性能
  2. 缓存的优点
  1. 缓存的缺点

强缓存和协商缓存

强缓存过期或者不设置(即失效),才进入协商缓存

强缓存

服务端设置response header的cache-control

  1. cache-control: max-age=xxxx, public
  1. cache-control: max-age=xxxx, private
  1. cache-control: max-age=xxxx, immutable
  1. cache-control: no-cache
  1. cache-control: no-store

客户端和服务器都不缓存, 没有进行强缓存和协商缓存, 即不缓存

协商缓存

强制缓存cache-control为过期或者no-store, 就会进入协商缓存,若cache-control为有效期或no-store则不会进入协商缓存

  1. 每次请求返回来 response header 中的 Etag 和 Last-Modified, 在下一次请求在request header中对应的If-none-matched和If-modified-since带上
  2. 服务器把请求的和当前文件的Etag和Last Modified进行对比文件是否更新了,先对比Etag,Etag一致后再对比Last Modified.
  3. 若更改了就返回新资源,并更新response header的Etag和Last Modified,返回status code 200.
  4. 若没有改动,status code返回304,客户端拿浏览器缓存的老资源。
  5. 标识字段

设置强缓存和协商缓存

  1. nodejs
res.setHeader('max-age': '3600 public')
res.setHeader('etag': '5c20abbd-e2e1')
res.setHeader('last-modified': 'Mon, 24 Dec 2018 09:49:50 GMT')
  1. nginx配置
location = /index.html {
  add_header Cache-Control "no-cache, no-store"
}

对于前端项目打包后的index.html文件

刷新

标签:control,缓存,协商,cache,Etag,客户端
来源: https://blog.csdn.net/rongmingye/article/details/121774480