强缓存:强制缓存的意思,在http1.0的时代,用的是expires请求头,1.1时代用的是max-age,cache-control配合

协商缓存:通过if-none-match,if-modify-since来控制

整个过程:

  1.当有客户端发出请求时,先检查一下max-age以及cache-control看是否命中强缓存,命中就直接使用缓存

  2.当强制缓存不可用的时候,就会向服务器发出请求,请求带上if-none-match,if-modify-since,if-none-match里面带上的是etag值。如果服务器匹配了,则可以使用缓存。如果没有这个值,则比较if-modify-since,判断资源有没有变更,没有的话就使用缓存,否则的话返回新资源跟modify-since。

  PS:后端返回的是etag\last-modify,浏览器或者前端发出的对应的是if-none-match以及if-modify-since