http缓存
强制缓存
1,expires:会在response Headers里面设置过期时间(expires),将本地浏览器本地时间和expires进行比对,超过时间就会拉去新资源,不到就是使用缓存(不推荐)
//例如浏览器请求资源时,给响应的headers设置expires,就能在浏览器看到这个参数
expires:new Date('2021-06-03 20:52:00').toUTCString()
2,Cache-Control:通过设置过期时间,max-age=xxx秒的形式,来让浏览器判断是否从缓存读取资源
"Cache-Control":"max-age=5",//设置过期时间为五秒
协商缓存
1,etag:通过etag包生成etag标识符(慢,但是准确),给响应headers设置
etag = etag标识符
Cache-Control = no-cache
然后对比资源请求头里面的if-none-match和etag标识符是否相同,来判断是否给浏览器向英国304状态码
2,last-modified:通过给响应头设置资源最后修改的时间,然后当浏览器再次请求资源的时候,对比当前资源的修改时间和浏览器带过来的修改时间是否一致,来确定是否返回304状态码
//获取资源当前的修改时间
给响应头设置last-modifued=资源当前修改时间
Cache-Control = no-cache
然后每次浏览器请求资源的时候,比对所请求的资源的修改时间 和 请求头里面带的last-modified是否相同 来给浏览器响应304状态码