强缓存和协商缓存

72 阅读1分钟

强缓存

在资源初次加载时,给它一个过期时间,如果过了这个时间,资源就需要在请求时重新获取,如果在这个时间内,我们资源发生了变化,但是呢它还是不会更新。

那么接下来,我们就需要考虑,我们是如何给它分配(指定)过期时间的,expirecache-control

协商缓存

  • 在资源加载时,服务端给响应头添加一个 Last-Modified,下次请求时,在请求头自动添加 If-Modified-Since 携带这个参数,让服务端进行对比。这种协商其实不严谨,文件更新时间变了不一定文件内容改变

  • 在资源加载时,服务端给响应头添加一个 E-tag,下次请求时携带 If-None-Match 参数,值 E-tag,在服务端进行对比,来决定内容有没有变化,有的话则需要更新,否则(返回 304 状态码)。