缓存分两种:强制缓存 和 协商缓存
强制缓存:cache-control:控制缓存是否生效,有可能过了生效时间但文件依然没变。
协商缓存:
返回头:if-modified-since 对应下次请求头:last-modified ,表示上次修改时间
返回头:if-none-match 对应下次请求头:eTag,表示内容被修改时间,有可能 last-modified判断被修改,但内容没变,所以再用eTag 判断。
ETag 优先级比 Last-Modified 高.
返回304,表示服务端判断内容没变,可以直接使用缓存。
静态资源服务器一般都支持协商缓存,动态资源需要手动添加协议头支持,last-modified等来进行缓存。
https://srtian96.gitee.io/blog/2018/08/16/%E6%B5%85%E8%B0%88HTTP%E7%BC%93%E5%AD%98/