一、前情提要

因为许多文章更多是这三者的总结和比拟,而本文次要是对Cookie、Session、Token的了解,因而并不波及到具体的优缺点、生命周期等细节的货色

二、Cookie

1.Cookie的实质:过来咱们去奶茶店买奶茶的时候,他会给你一张纸卡,你每生产一次,这张纸卡就会记录一次你的生产记录

2.Cookie存在的问题

  • 因为你每次都须要记录(比如说奶茶店会给你盖章示意喝奶茶一次),Cookie的长度通常来说比拟长(盖章太多),这样服务端和客户端之间传递的信息量就会比拟大
  • Cookie不平安,因为在客户端进行存储,他人能够依据本地的Cookie来进行假装,从而对服务端的平安产生威逼
  • 因为在客户端进行存储,当在A电脑登录时,能传递信息给客户端,但当在B电脑登录时,却没有了。比方我想在任何设施查看购物车信息就没有方法通过Cookie进行存储

三、Session

1.session的实质:当咱们去奶茶店买奶茶的时候,他会给你一张卡,下面有卡号,咱们能够通过卡号,你每生产一次,让店员在操作机上给你记录一次
2.解决下面Cookie的问题

  • 因为SessionID(卡号)是一串数字,绝对于Cookie来说(盖章),它是没有那么长的,这样客户端和服务端之间传递的信息量就小
  • 假如应用Cookie实现Session时,因为客户端只存储了SessionID,那么即便SessionID被窃取,也不会对服务端的平安产生影响,只会对你的信息产生影响罢了(谁让你本人丢了呢?doge)

四、Token

1.为什么要引入Token?

  • 仔细的同学可能发现了,Cookie存在的第三个问题呢,怎么Session没解决掉呢,而这就是咱们为什么要引入Token的起因之一
  • 服务器须要存储SessionID,这会加大服务端的压力,而Token不须要存储在服务端
  • 在分布式中,如果咱们没有存储SessionID的服务器B去申请服务器A,会呈现无奈申请的状况

2.Token的验证过程(留神这里不是服务器端和token进行比拟,他是整个token中曾经含有了签名,让token本人含有的签名和破解密钥后的签名进行比拟)