一、鉴权
含义:鉴权就是指验证用户是否拥有访问系统的权利,即鉴定权限
二、引入cookie、session和token的原因
目前,大部分接口使用的都是HTTP协议,而HTTP协议是无状态的,即本次请求和上一次请求是没有任何关系的,无法共享信息。
比如,像我们现在淘宝下单需要先登录,你登录成功了之后再去下单,服务器怎么知道你是已登录状态呢?
三、cookie和session
1、cookie产生原因:由于HTTP是一种无状态协议,服务器没有办法单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie(Cookie实际上是一小段的文本信息)
2、cookie工作原理:客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie;客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。
3、session工作原理:客户端发送登录信息给服务器,服务器拿到登录信息后生成sessionID,然后服务器将sessionID发送给客户端,客户端再次访问时携带sessionID给服务器,服务器通过sessionID判断对方是否是真实用户。
4、cookie 和session的区别
1)存放位置:cookie数据存放客户端(浏览器),session存放在服务器
2)安全性:cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session
3)内存上:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE
4)大小限制:单个cookie在客户端的限制是3K,所以将登陆信息等重要信息存放为SESSION; 其他信息如果需要保留,可以放在COOKIE中
5)共同点:cookie和session都是用来跟踪浏览器用户身份的会话方式
四、session和token(Json web token (JWT))
简单来说:使用token的原因是session ID占服务器内存
解决方法:引入token,token可以直接把锁和钥匙都返回给浏览器,服务器通过算法去验证锁和钥匙是不是同时有效的(防止有人恶意篡改)