Session、Cookie与Token

Session、Cookie与Token区别

Session

概念

  • session从字面上讲,就是会话。这个就类似你和一个人交谈,你怎么知道当时和你交谈的是张三而不是李四呢?对方肯定有某种特征长相等,表明他是张三;
  • session也是类似的道理,服务器要知道当前请求发给自己的是谁,为了做这种区分,服务器就是要给客户端分配不同的“身份标识”,然后客户端每次向服务器发送请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。
  • 至于客户端怎么保存这个“身份标识”,可以有很多方式,对于浏览器客户端,大家都采用cookie的方式。

Cookie

概念

cookie由服务器生成,发送给浏览器,浏览器把cookie以KV形式存储倒某个目录下的文本文件中,下一次请求同一网站时会把该cookie发送给服务器。

Token

概念

  • token也称作令牌,由uid+time+sign[+固定参数]
  • token的认证方式类似于临时的证书签名,并且是一种服务端无状态的认证方式,非常适合于REST API的场景,所谓无状态就是服务端并不会保存身份认证的相关数据。

三者区别

  • 存储位置不同:cookie数据存放在客户的浏览器上,session数据放在服务器上;
  • 隐私策略不同:cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑倒安全应当使用session;
  • session会在一定时间内保存服务器上。当访问增多,就会比较占用你服务器的性能,考虑倒减轻服务器性能方面,应当使用cookie;
  • Session是一种HTTP储存机制,为无状态的HTTP提供持久机制;
  • Token就是令牌,比如你授权(登录)一个程序时,它就是个依据,判断你是否已经授权该软件;
  • Session和Token并不矛盾,作为身份认证Token安全性比Session好,因为每一个请求都有签名还能防止监听以及重放攻击,而Session就必须依赖链路层来保障通讯安全了,如上所说,如果你需要实现由状态的会话,仍然可以增加Session来在服务端保存一些状态。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值