1.什么是Cookie 4k
一、服务器通过Set-Cookie头给客户端一串字符串
二、客户端每次访问相同域名的网页时,必须带着这段字符串
三、客户端要在一定时间内保存这个Cookie
四、cookie默认在用户关闭页面后失效 后台代码可以任意设置Cookie的过期时间
2.什么是session?
session 依赖于cookie
服务器给客户端一个sessionId,这个sessionId对应着一小块内存,每次用户访问服务器的时候,服务器就 通过sessionID去读取对应的session,从而获得用户的隐私信息
这个sessionID是个随机数,没有人知道,因此无法被读取,安全性很好
·
3.什么是localstorage?
session是服务器上面的hash表 而localstorage是浏览器中的hash表
localStorage 持久化存储
localStorage的三个API
(1)getItem() 获取信息
(2)setItem() 设置信息
(3)clear() 清空
image.png
特点:
一、localStorage与HTTP无关
二、HTTP不会带上localStorage的信息
三、只有相同域名的页面才能互相读取localStorage(没有同源限制那么严格)
四、每个域名localStorage最大存储量为5M左右,每个浏览器不一样
五、常用场景:记录有没有提示过用户,(没有用的信息,不能记录密码)
六、LocalStorage 永久有效,除非用户清理缓存
4.什么是sessionStorage?
一二三四同上
五、sessionStorage 在用户关闭页面(会话结束)后就失效
http缓存
5.Cache-Control
Cache-Control: max-age=<seconds>
后台设置,多少秒内可以不用再请求,这段时间内并没有真正的请求直接从缓存里面读取内容
image.png一般首页不设置缓存时间,因为如果设置了,代码更新后用户不能够直接体验到
收获 终于知道为什么webpack要设置hash值了
因为有cache-control 这一功能,只要代码一直不更新,第一次请求过后,用户可以不用通过继续访问服务器,直接在本地缓存里面读取就行,这个时间可以设置一年甚至更多
如果代码更新发版的话就更新一下hash值,用户请求发现hash值路径不一样就会访问新的代码。
6.Expires
这个是老技术,cache-control是这项技术的升级
区别在于这个技术 是设置缓存截止的具体时间,cache-control是设置缓存可以持续多长时间
但是这个技术有一个不安全的地方在于: 所设置的时间是用户本地的时间,有可能用户本地时间错乱,那么缓存的有效期将都会不同
7.md5 摘要算法
是将文件内容转换成为字符串,如果两次的MD5值不一样,说明下载的文本有差异,而且内容差异越小,字符串差异越大
e-tag 就是利用MD5这一特点
和cach-control类似,判断MD5值是否有改变,没改变的话就没有响应返回了
但是区别在于,缓存直接不请求了,而e-tag还是请求的,只不过判断相同后,不返回罢了
网友评论