强制缓存:浏览器通过服务器端返回的Expires(到期时间)/Cache-Control来决定是否需要再次请求数据
对比缓存:服务器返回Last-Modified/Etag, 浏览器请求的时候将返回的数据通过If-Modified-Since/If-None-Match传回给服务器,服务器通过对比返回的数据告诉浏览器是否需要更新(304/200)
当两个规则都存在时,先执行强制缓存,再执行对比缓存
Cache-Control
private: 客户端可以缓存(默认)
public: 客户端和代理服务器都可缓存
max-age=xxx: 缓存的内容将在 xxx 秒后失效
no-cache: 需要使用对比缓存来验证缓存数据
no-store: 所有内容都不会缓存