DNS缓存(域名解析系统)
CDN缓存
在浏览器本地缓存失效后,会向CDN发送请求

浏览器缓存

磁盘缓存和内存缓存,一般像css静态文件保存在磁盘,像js动态执行保存在内存(但是实际中发现好像不是这样的)


强制缓存

cahe-control
max-age: 最大缓存时间
no-cache:需要进入协商缓存
no-store:禁止使用缓存,每次都发送请求
public: 可以被所有的终端缓存,包括CDN等中间代理服务器
prIvate: 只能被终端的用户浏览器缓存,不能被中间代理服务器缓存
expires:绝对值的一个时间段

如果强缓存没有命中的话就进入协商缓存

协商缓存

ETag/If-None-Match
第一次请求的时候带上response header带上ETag的值,后面再次请求的if-None-Match字段,验证值是否发生改变,如果没有改变就返回304

Last-modify/If-Modify-since

Etag是根据文件内容是否改变来判断
Last-Modify是通过时间来判断