http 缓存

2022-05-25  本文已影响0人  RickyWu585

强制缓存

Expires: Wed, 21 Oct 2000 07:28:00 GMT

然后在这个时间前,客户端浏览器都不会再发起请求,而是直接用缓存资源。

  1. max-age是其中一个属性:
Cache-Control: max-age=20000

这表示当前资源在20000秒内都不用再请求了,直接使用缓存。

  1. no-cache:使用缓存前,强制要求把请求提交给服务器进行验证(协商缓存验证)。
  2. no-store:不存储有关客户端请求或服务器响应的任何内容,即不使用任何缓存

协商缓存

  1. 当服务器返回时,根据返回内容计算出一个hash值或者一个版本号,具体要看服务器的计算策略,然后加到response header
    image.png
  2. 客户端拿到后会将这个ETag和返回值一起存下来,等下次请求时会使用配套的If-None-Match,将这个放在request header
    image.png
  3. 服务端拿到请求里的If-None-Match和当前的ETag比较,一样的话返回304,告诉浏览器使用本地缓存,不一样的话返回200,使用最新的数据

webpack配置缓存:文件名哈希

output: {
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].[contenthash].js'
  }

参考:https://segmentfault.com/a/1190000038562294

上一篇 下一篇

猜你喜欢

热点阅读