Cookie、Session、Token比较

1 Cookie

cookie 指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。

cookie由服务器生成,发送给浏览器,浏览器把cookie以 key-value 形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的,默认单个cookie的大小不能超过4k

在这里插入图片描述

2 Session

客户端访问服务器,服务器存储的数据value,把key返回给客户端,客户端A下次带着key(session ID)来访问服务器,服务器就能给出客户端的数据。

注:如果是集群状态下的服务器
客户端访问了另一个服务器,那个服务器没有客户端A的数据。
解决方法:参考博主的另一篇文章:session共享的解决方案

在这里插入图片描述

3 Token

客户端访问服务器,服务器给了客户端token,客户端拿着token访问服务器,服务器验证token,返回对应数据。

在Web领域基于Token的身份验证随处可见。在大多数使用Web API的互联网公司中,tokens 是多用户下处理认证的最佳方式。

在这里插入图片描述

4 Cookie、Session、Token的区别

4.1 Cookie和Session的区别

  • 数据存放位置不同:Session数据是存在服务器中的,cookie数据存放在浏览器当中。

  • 安全程度不同:cookie放在服务器中不是很安全,session放在服务器中,相对安全。

  • 性能使用程度不同:session放在服务器上,访问增多会占用服务器的性能;考虑到减轻服务器性能方面,应使用cookie。

  • 数据存储大小不同:单个cookie保存的数据不能超过4K,session存储在服务端,根据服务器大小来定

4.2 Session和token的区别

  • token是开发者自己进行定义的,session是http协议规定的;

  • token不一定存储(一般可以存放于redis等非关系型数据库中),session存在服务器中;

  • token可以跨域,session不可以跨域,它是与域名绑定的(token可以解决session共享的问题)。


版权声明:本文为jhgjyfgyu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。