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不支持跨域名访问