session,cookie,sessionStorage,localStorage,token的区别?

cookie和session:都是用来跟踪浏览器用户身份的会话方式;

区别:

保持状态:cookie保存在浏览器端,session保存在服务端;

使用方式:cookie, 如果不设置过期时间,cookie保存在内存中,生命周期随浏览器的关闭而结束,如果设置了过期时间,cookie保存在硬盘中,关闭浏览器,cookie数据直到过期时间而消失;cookie是服务器发给客户端的特殊信息,cookie是以文本的形式保存在客户端,每次请求都会带上它;session:当fu服务器收到请求需要创建session对象时,首先会检查客户端请求中是否包含sessionid,如果有sessionid,服务端将根据id返回对应的session对象,如果没有sessionid,服务器端会创建新的session对象,并把sessionid在本次响应中返回客户端,通常使用cookie方式存储sessionid到客户端,在交互中浏览器按照规则将sessionid发送给服务器,如果用户禁用cookie,则使用URL重写;可以通过response.encodeURL(url)进行实现,API对encodeURL的约束为,当浏览器支持cookie时,url不做任何处理,不支持cookie时,将会重写url将sessionid拼接到访问地址后面;

存储内容:cookie只能存储字符串类型,session能存储任何类型的对象;

存储大小:单个cookie保存的数据不能超过4kb, session大小没有限制;

安全性:session的安全性大于cookie

使用场景:cookie: 判断用户是否登录过网站,保存用户上次登录的时间,上次查看的页面,浏览计数;session:用户保存每个用户的专用信息,变量的值保存在服务端,通过sessionid来区别不同的用户;商城购物车,保存用户登录状态,将某些数据放在session中,供同一用户的不用页面使用;

缺点:cookie:1,大小受限,用户禁用cookie,就会使其功能受限,3,安全性低,4,每次访问都要发送cookie,浪费带宽;session:保存的东西越多,就越占服务器内存。依赖于cookie(sessionid保存在cookie),如果禁用cookie,则要使用url重写。

localStorage和sessionStorage:

1,生命周期:localStorage的生命周期是永久的,关闭页面也不会消失,除非是主动删除;sessionStorage的生命周期是仅在当前会话下有效‘

2,存储大小:localStorage和sessionStorage的存储数据一般都是5mb;

3,存储内容类型:都只能存储字符串类型;

4,获取方式:localStorage: window.localStorage; sessionStorage: window.sessionStorage;

5,应用场景:localStorage常用于长期登录,适合长期保存在本地的数据;sessionStorage适合敏感账号一次性登录;

token: 也被称作令牌,是由uid(用户身份标识)+time(时间戳)+sign(签名)+ 可选的固定参数,组成;

token只能被保存在客户端的cookie或localstorage中,因为用户的状态在服务端的内存中是不能存储的,所以这是一种无状态的认证机制;

token认证流程:1,用户登录校验,校验成功后就返回Token给客户端,2,客户端收到数据后就保存在客户端,3,客户端每次访问api就携带Token到服务端 ,4,服务端采用filter过滤器校验,校验成功后返回请求数据,校验失败则返回校验码;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值