token,session以及cookie的区别

什么是Cookie

cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据。

cookie由服务器生成,发送给浏览器,浏览器把cookie以key--value形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie

发送给服务器。由于cookie是存在客户端上的

什么是Session

session 从字面上讲,就是会话。session就是为了处理上下文接口进行会话--为了保持接口会话的一致性

Session是一种服务器端的机制,Session 对象用来存储特定用户会话所需的信息。

Session的根本作用就是在服务端存储用户和服务器会话的一些信息。典型的应用有:

1、判断用户是否登录。

2、购物车功能。

什么是Token

Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,

并作出相应提示,在这样的背景下,Token便应运而生。

Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌进行访问。token在服务器时可以不用存储用户信息的,

token传递的方式也不限于cookie传递,token也可以保存起来。

使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮

token的特点:

1.无状态--服务器不需要记录任何东西,每次都是一个无状态的请求,每次都是通过解密来验证是否合法。

2.在网络传输的过程中,性能更好

3.不需要绑定到一个特定的身份验证方案。Token可以在任何地方生成,只要在 你的API被调用的时候, 你可以进行Token生成调用即可.

 

Cookie和Session的区别:

1、存放位置不同

Cookie保存在客户端,Session保存在服务端。

2 、存取方式的不同

Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。Cookie中也不能直接存取Java对象。若要存储

略微复杂的信息,运用Cookie是比拟艰难的。

3丶存储容量不同

 单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie,对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存

放过多的东西,并且设置session删除机制。

4、安全隐私不同

cookie对客户端是可见的,所以它是不安全的。session存储在服务器上,不存在敏感信息泄漏的风险

5丶跨域支持上不同

cookie支持跨域名访问,session不支持跨域名访问