1、http缓存在哪里设置
服务代码设置响应头
2、强制缓存
强缓存(新鲜度)(一般设置过期时长)
第一次请求---
服务器设置响应头:
Cache-Control max-age:31536000(s)
浏览器会缓存下文件
下一次请求相同资源---
浏览器会检查max-age有没有过期
若没过期,从缓存中拿资源(此时状态码为200)
若过期,重新请求
3、协商缓存(对比缓存)
协商缓存是服务器端缓存策略
第一次请求---
服务器返回资源和资源标识
浏览器讲资源存到本地缓存中
下一次请求相同资源---
请求时携带资源标识
服务器判断版本是否一致
若一致,使用缓存资源(304)
若不一致,重新请求,返回新的资源和新的资源标识(200)
4、协商缓存中资源标识
ETag(优先于Last-Modified)
请求头中携带的资源标识用的key为If-None-Match
Last-Modified
请求头中携带的资源标识用的key为If-Modified-Since
5、f5刷新与缓存的禁用情况
f5刷新是暂时禁用强缓存
清空缓存并硬性重新加载 暂时禁用所有缓存策略,请求一定会到服务器
6、缓存策略
不同类型的站点有不同的策略,一般通用的做法如下:
html文件 ----协商缓存
html文件中引用的js、css、png ---强缓存,并设置一年的有效期
商品购物类API ---不用缓存
其他API ---强缓存或者协商缓存