缓存验证Last-Modified和Etag的使用
- 如果响应设置了Catch-Control:'no-cache';
no-cache 可以在本地缓存,可以在代理服务器缓存,但是这个缓存要服务器验证才可以使用;
- Last-Modified和Etag设置在头信息里面,首次请求,会返回给客户端,第二次请求,请求头信息里面会自动带上上次返回的Last-Modified和Etag的值,对应的key分别是If-Modified-Since和If-None-Match;
- 后端接收到对应的 If-Modified-Since和If-None-Match,和数据库里面存储的值做比较,如果和上一次数据相同,可以通过返回304,通知客户端,直接用缓存数据,如果不相同,则正常返回数据;