【cookie、sessionStorage、localStorage的区别】,【cookie、session、token】

一、cookie、sessionStorage、localStorage的区别

1. 存储大小不同

localStorage的大小一般为5M
sessionStorage的大小一般为5M
cookie的大小一般为4K

2. 有效期不同

localStorage存储的内容,需要手动清除才会消失(调用api或者清除缓存)。
sessionStorage在当前会话下有效,关闭页面或者浏览器时会被清空。
cookie在设置的有效之前有效,当超过有效期便会失效。

3. 与服务端的通信

localStorage不参与服务器端的通信。
sessionStorage不参与服务器端的通信。
cookie参与服务器端通信,每次都会携带http的头信息中。(如果使用cookie保存过多数据会带来性能问题)

4. 生成方式

localStorage前端生成。
sessionStorage前端生成。
cooki服务器生成。可设置失效时间。服务器通过响应头“Set-Cookie”传给前端。

5. 数据共享

localStorage相同浏览器不同页面可共享(同源页面)。
sessionStorage相同浏览器同一个页面可以共享,不同页面不可共享(同源页面)。
cookie相同浏览器不同页面可共享(同源页面)。

二、cookie:

主要用于存储访问过的网站数据,存储浏览器的信息到本地计算机中,用于客户端和服务器端的通讯

Cookie 是为了解决“如何记住用户信息”而发明的:
当用户访问网页时,他的名字可以存储在 cookie 中。
下次用户访问该页面时,cookie 会“记住”他的名字。

特点:
(1)以文本形式保存(.txt)
(2)cookie存储信息不安全(不能存放重要的信息)
(3)cookie中有域(domain)和路径的概念,浏览器是一个比较安全的环境,所以不同的域之间不能直接访问(js的同源策略限制)

name: cookie的名字(键)
value: cookie存放的值
expires: 指cookie过期的时间(该时间为世界时间 UTC时间)也称为格林威治时间
max-age: 指cookie最大的存活有效期(单位:秒)
domain: 指的是cookie当前的域
path: 指cookie当前的路径
size: 指cookie存放的大小
secure: 指cooke的安全属性

注意:expires和max-age的默认值为session代表关闭浏览器,该cookie则清空、失效

cookie有效期失效后,浏览器一般会自行删除这个cookie。

三、webstorage:

  1. 存储内容大小一般支持5M左右(不同浏览器可能还不一样)
  2. 浏览器端通过window.sessionStorage和window.localStorage属性来实现本地存储机制
  3. 相关API:
    (1)xxxStorage.setItem(‘key’, ‘value’);
    该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。
    (2)xxxStorage.getItem(‘key’);
    该方法接受一个键名作为参数,返回键名对应的值。
    (3)xxxStorage.removeItem(‘key’);
    该方法接受一个键名作为参数,并把该键名从存储中删除。
    (4)xxxStorage.clear();
    该方法会清空存储中的所有数据。
  4. 备注:
    (1)sessionStorage存储的内容会随着浏览器窗口关闭而消失。
    (2)localStorage存储的内容,需要手动清除才会消失(调用api或者清除缓存)。
    (3)xxxStorage.getItem(key)如果key对应的value获取步到,那么返回值是null。
    (4)JSON.parse(null)的结果依然是null。

四、cookie、session、token

http无状态 ⇒ cookie ⇒ session ⇒ JWT(Json Web Token)

cookie:浏览器发起http请求,服务器会进行cookie设置,也就是set-cookie,服务器会把name和value的值填充完整,发送给浏览器后,浏览器会保存起来,这样浏览器以后发送的每一个请求都会自动附上这个cookie。
session:把用户名和密码放在cookie很不安全,产生了session。浏览器保存的不是用户名和密码了,而是sessionID。
诞生并保存在服务器,由服务器主导一切,cookie是一种数据载体,把session放在cookie中送到客户端,cookie跟随http的每个请求发送出去。
token:如果有大量用户访问服务器,可能面临有大量sessionID存储在数据库中,产生了jwt。
诞生在服务器,但保存在浏览器,由客户端主导一切,可以放在cookie或storage中,持有token可以允许访问服务器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值