token、cookie、session的区别

一、三者的定义

Cookie是浏览器用来保存用户信息的文件,可以保存比如用户是谁,购物车有哪些商品等。

Session是一次会话,会话是指我们访问网站的一个周期。

比如用户打开一个浏览器访问某个位的站点。
在这个站点点击多个超链接查看各个网页,然后关闭浏览器,整个过程称之为一个会话。
token是服务器返回的一个临时签名数据, 可以使用这个签名数据表面用户身份. 

 

为什么会有这三个东西呢?  都是一个目的, 服务器需要知道和自己通话的人是谁, 专业一点就是 服务器需要用某种机制来识别具体的用户.

这要从HTTP协议开始说起, HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话, 自然无法识别用户, 所以诞生了Cookie,session和token

二、三者的比较

cookie : 

1. cookie由服务器生成,保存在客户端浏览器。

2. 容易被劫持,不安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗。

3. cookie可以被用户禁止

4. 容量小, 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

session

1. session是由应用服务器维持的一个服务器端的存储空间, 没有对存储的数据量的限制,可以保存更为复杂的数据类型.

2. session 默认被存在在服务器的一个文件里, 但是实际中可以放在 文件、数据库、或内存中都可以。

3. 当用户量增多时,会对服务器造成较大压力。

4. Session的实现方式大多数情况用Cookie保存的,但是也可以使用URL地址重写。

5. 较安全,用户验证这种场合一般会用 session, 比如金融银行类的产品, 

token

1.无状态、可扩展

2.支持移动设备

3.跨服务器调用

4.安全

posted @ 2021-04-18 12:54  Z张不错  阅读(1335)  评论(0编辑  收藏  举报