2、减少网络带宽;
3、降低服务器的压力
4、…
但是也可能会出现很多的问题,必须要注意使用。
http的请求头和相应头
先了解一下http报文的请求头,响应头
通用首部字段文
-
Cache-Control
控制缓存行为 -
Prama
值为"no-cache"时禁用缓存
请求首部字段
-
If-Match
比较ETag是否一致 -
If-None-Match
比较ETag是否不一致 -
If-Modified-Since
比较资源最后更新时间是否一致 -
If-Unmodifined-Since
比较资源最后更新时间是否一致
响应首部总段
ETag
资源的匹配信息
实体首部字段
-
Expires
实体主体过期时间 -
Last-Modified
资源的最后一次修改时间
缓存的分类
强缓存:通过响应头来实现,使得浏览器每次发出的请求资源都是来自服务器而不是用缓存。
-
Expires
(http1.0的产物)资源过期的时间,由服务器返回,受限于本地时间,如果本地时间修改那么可能会造成缓存失败,绝对时间。 -
Cache-Control
(http1.1)相对时间。
no-cache
可以缓存到本地,必须浏览器和服务器再验证,在验证之前是不可用的;
no-store
禁止缓存到本地;
public
可以被所有用户共享,包括代理服务器等;
private
只能被终端浏览器缓存。
Cache-Control
的优先级会高于Expires
- 应用场景
-
频繁变动的资源
-
缓存适用的是对数据一致性要求比较高的项目,比如金钱或者重要数据。
协商缓存:当请求没有命中强缓存,那么久会发送一个请求到服务器,由服务器来确定该资源是否可用。
Last-Modified
资源的最后一次修改时间,当浏览器发送请求的时候就会发送一个请求头If-Modified-Since
(上次服务器响应头中Last-Modified
的值),询问服务器该日期后资源是否有更新,有的话就会发送新的资源。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
友可以戳我获取!!**](https://bbs.youkuaiyun.com/topics/618191877)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!