sessionStorage localStorage cookie的区别

举报
达拉崩巴斑得贝迪卜多 发表于 2021/12/21 00:50:53 2021/12/21
【摘要】 sessionStorage localStorage cookie的区别 基本概念 cookie:是网景公司的前雇员在1993年发明。它的主要用于保存登陆信息,比如登陆某个网站市场可以看到’记住密码...

sessionStorage localStorage cookie的区别

基本概念

cookie:是网景公司的前雇员在1993年发明。它的主要用于保存登陆信息,比如登陆某个网站市场可以看到’记住密码’,这就是通过在cookie中存入一段辨别用户身份的数据来实现的。

sessionStorage:会话,是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但是页面关闭后,sessionStorage中的数据就会被清空。

localStorage:是HTML5标准中新加入的技术,当然早在IE6时代就有一个userData的东西用于本地存储,而当时考虑到浏览器的兼容性,更通用的方案是使用flash。如今localStorage被大多数浏览器所支持。

localStorage

localStorage的生命周期是永久的,除非用户在浏览器提供的UI上清除localStorage信息,否则这些信息将永久存在, 而且它仅在客户端保存,不参与服务器通信。
存放数据大小为一般为 5MB
原生接口可以接受,可以封装起来对object和array有更好的支持

sessionStorage

sessionStorage仅在当前会话下有效,不参与服务器通信,
原生接口可以接受,可以封装起来对object和array有更好的支持
(只能保存字符串类型,复杂对象只能通过json的形式保存)
(保存数据setItem,获取数据getItem,删除removeItem ,删除所有clear)
不同浏览器无法共享两种信息.
存放数据大小为一般为 5MB

cookie

cookie(HTTP Cookie)通过name=value的方式存储
cookie的存储数据大小只有4kb左右,有个数限制,一般不能超过20个。
生效时间默认是浏览器关闭失效,但是可以自己设置
cookie会参与服务器端通信,每次都会携带在HTTP头中,如果保存过多会有性能问题。
cookie也是不安全的,但是可以设置cookie的生命周期,使之不会永远有效。
需要自己进行封装,原生的cookie接口不够友好

cookie的优点

具有极高的扩展性和可用性.

  • 通过良好的编程,控制保存在 cookie 中的 session 对象的大小。
  • 通过加密和安全传输技术,减少 cookie 被破解的可能性。
  • 只有在 cookie 中存放不敏感的数据,即使被盗取也不会有很大的损失。
  • 控制 cookie 的生命期,使之不会永远有效。这样的话偷盗者很可能拿到的就是一个过期的 cookie。
    cookie的缺点.
  • 长度和数量有限制,每一个域中最多只能保存20条,每个不能超过4kb,否则就会被拦截掉。
  • 如果cookie被拦截 那么就可以获取所有的session信息,加密也没用.
  • 有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务端保存一个计数器。若把计数器保存在客户端,则起不到什么作用。

localStorage、sessionStorage、Cookie 共同点
都是保存在浏览器端,且同源的。

应用场景

cookie:判断用户是否登录过网站,以便实现下次自动登录或记住密码;保存事件信息等

sessionStorage:敏感账号一次性登录;单页面用的较多(sessionStorage 可以保证打开页面时 sessionStorage 的数据为空)

localStorage:常用于长期登录(判断用户是否已登录),适合长期保存在本地的数据

文章来源: lvsige.blog.csdn.net,作者:祥子的小迷妹,版权归原作者所有,如需转载,请联系作者。

原文链接:lvsige.blog.csdn.net/article/details/107237262

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。