HTTP缓存(强缓存、协商缓存)

HTTP缓存(强缓存、协商缓存)

HTTP缓存

强缓存:

有效时间:Cache-Control:max-age=300

HTTP缓存(强缓存、协商缓存)

强缓存

协商缓存:服务端缓存策略

Last-Modified:资源上一次修改的时间

ETag:资源对应的唯一字符串

HTTP缓存(强缓存、协商缓存)

协商缓存请求体参数

HTTP缓存(强缓存、协商缓存)

协商缓存响应体参数

流程(关键点看第一个图):

1、第一次发起HTTP请求,判断是否有缓存,没有,则向服务器发起请求并对资源进行缓存,一般保存在内存、磁盘(内存缓存在进程关闭(tab页)后就不存在)。

2、再次请求时,判断存在缓存,则先在浏览器里通过Cache-Control判断过期,没过期则向读取缓存(强制缓存)渲染。

3、当强缓存的Cache-Control过期了,则会向判断资源是否存在标志Last-Modified或ETag,不存在,则直接向服务器获取资源。

4、存在标志,则向服务器发起请求,请求体包含 If-Modified-Since、If-None-Match(注意这里的值是之前服务器返回的Last-Modified和ETag),通过服务器判断,值不变,表明文件没修改可以直接本地缓存(304状态码)。

5、如果服务器判断的值不一样则服务器返回新资源(200状态码)。

© 版权声明

相关文章

暂无评论

none
暂无评论...