接口基础cookie, session,token的区别

为什么要有session,cookie,token的出现?
答:是由于网络中http协议造成的,因为http本身是无状态协议,这样,无法确定你的本次请求和上次请求是不是你发送的。如果要进行类似论坛登陆相关的操作,就实现不了了。

cookie 机制:

cookie并不是虚无缥缈的东西,它只是一个存储方式是通过扩展http协议来实现的. 浏览器访问服务器的时候,服务器会在response header里添加指示浏览器生成cookie的规则,浏览器按照一定的规则在request header里生成cookie并发给服务器,
服务器校验规则,如果校验通过会一直保持会话,cookie机制采用的是在客户端保持状态的方案.

session 机制:

session机制采用的是在服务端保持状态的方案,把数据保存在服务器里而cookie 是把数据保存在客户端里,
服务器保存的数据会自动生成一个sessionID 也就是我们说的key给客户端, session ID 可以保存在cookie里,URL ,POST data里也行.
如果下次访问 客户端会把session ID 发给服务端进行匹配,如果校验通过会保持回话.

总结:
举个例子:
张三如果想取钱,可以通过 两个方式 1. cookie 2. session
1.如果想通过cookie 的方式 就是需要拿着存折 里面有详细的信息,余额和取款信息都可以看到
2.如果想通过session 的方式 就是拿着一个银行卡,里面有个卡号进行取钱,里面的信息进行了隐藏.

将登陆信息等重要信息存放为SESSION,这就是安全的问题.
其他信息如果需要保留,可以放在COOKIE中,

Token 机制:

有了sesion 和cookie 为什么也要有token 呢?
答: session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面.
**产生过程:**浏览器第一次访问服务器,根据传过来的唯一标识(比如userID),服务端会通过一些算法,如常用的HMAC-SHA256算法,然后加一个密钥,生成一个token,然后通过BASE64编码一下之后将这个token发送给客户端;客户端将token保存起来,下次请求时,带着token,服务器收到请求后,然后会用相同的算法和密钥去验证token,如果通过,执行业务操作,不通过,返回不通过信息.
解释session是空间换时间,而token是时间换空间?

1.session 直接拿sessionID 进行匹配,速度很快,但是token 需要加密解密再验证步骤,速度相对会更慢
2.token 不会再服务器保存数据,能做到真正无状态, 空间节省了不少.

举个例子:
方案 A :我发给你一张身份证,但只是一张写着身份证号码的纸片。你每次来办事,我去后台查一下你的 id 是不是有效。
方案 B :我发给你一张加密真正的身份证,以后你只要出示这张卡片,我就知道你一定是自己人。
就这么个差别。

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值