session、token与jwt

session、token与jwt

自认为对session、token与jwt理解还可以,这次来讲讲这个话题。

session与cookie

什么是session

session翻译过来是会话,但在WEB领域常常是指会话数据:“同一客户端与服务端进行沟通时的上下文信息”,session的作用,我用一个例子来做比喻:

假设我在滴滴平台上叫车被司机拒载后,拨通了滴滴客服电话进行投诉,通话开始,我是客户端,滴滴客服则是服务端,我每一次讲话就是发送一个请求,她每一次回复则是响应

以下是一种可能的沟通情形:

我:你好,我在你们平台上叫了一个车被司机拒载,我现在想投诉他。
客服MM:您好,给您带来不便非常抱歉,请问您的滴滴账号是多少?
我:185xxxx8888。
客服MM:您好,请问您要投诉哪一个行程订单?
我:今天下午3点,从南山星巴克到北山星巴克,司机车牌尾号xxx。

在我与滴滴客服的这次沟通中,session数据就是沟通过程中的信息上下文(滴滴账号、行程信息、司机车牌…),它的作用不言而喻,没有这些信息客服就不知道谁因为什么在投诉谁,所以session在这的作用是能帮助我完成这个投诉。

通过例子,我们能对session有一个简单理解,但对于HTTP应该如何记住session的内容却又是另外一回事,也许这个案例中客服接通我的电话时便撕出了一张便签纸,便签纸的页码是ignore-sb,随后过程中我与她沟通的信息她便记录在这张便签纸上。

在一对一的客服例子中,客服一直知道是与“我”在对话,但针对HTTP的情况是:“一个客服(服务端)同时处理成百上千的投诉(客户端)”,客服面临的挑战是在串线的情况下,将投诉过程中每一个有效信息记录到对应的便签纸上。由于串线,客服无法确定与她沟通的是哪个投诉用户,也就不能将用户发言中的有效信息记录到对应的便签纸上,在技术上这称为HTTP协议的无状态性:“没有来电显示的多路复用通讯”。

针对HTTP通信,如果同一个客户端先后发出两个请求,在服务端,如果不借用一些特殊手段是无法得知这两个请求来自同一个客户端,这就是HTTP协议的无状态性,它导致无法追踪会话,cookie的出现就是为了解决这个问题。

什么是cookie

cookie是HTTP协议中定义的一个请求头部字段,浏览器针对这个头部字段会有一些额外处理逻辑,如自动携带、跨域检查与过期删除等,与之对应的响应头部是set-cookie,用于服务器向客户端写入cookie数据。

session与cookie的关系

我们需要克服HT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值