美文网首页
session、localStorage、Cache-Contr

session、localStorage、Cache-Contr

作者: 阿龙哟 | 来源:发表于2019-06-18 19:10 被阅读0次

    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还是请求的,只不过判断相同后,不返回罢了

    相关文章

      网友评论

          本文标题:session、localStorage、Cache-Contr

          本文链接:https://www.haomeiwen.com/subject/fbwafctx.html