【第三节】鉴权

引子:
  • HTTP是无状态协议。举个例子,你登录信息,点击登录进入管理系统。这个时候你刷新一下页面,又要输入账号密码,想想是不是很麻烦?
cookie

为了解决以上问题,引入了cookie的概念。输入登录信息登录成功之后,服务器Set-cookie,服务器把cookie发送给浏览器,浏览器保存cookie,下次向服务器请求时,在HTTP请求头中加入这个cookie,这样服务器就知道你是谁,并且返回给想要的内容。

BUT!!!!! cookie内容相对暴露,安全性上来说,不是那么高,所以讲讲主角---session。

session

session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
一个session里面持有一个sessionID,客户端下次向服务器提交请求时,带上这个sessionID,根据sessionID去服务器找对应的session,找到这个session后,服务端给浏览器一个可识别的内容(eg:html,json等),如果没找到这个session,会提示你登录失败相关信息。

公司一开始只用一台服务器A,但是后面用户量增大,增加几个服务器,采用集群模式。用户访问服务器A,session是储存在服务器A里面的,这个时候服务器A挂了,用户访问其他服务器,需要重新登录。想想看是不是很麻烦?那么有没有办法解决这个问题呢?很明显是有的,可以采用两种方式:
1、把session持久化到数据库;
2、把session放到Redis里面。

JWT:

  • session机制是把一把钥匙保存在客户端,请求的时候送到服务端,用来打开服务端的保险箱(当然,服务端的保险箱一般情况下都没有加密);

  • JWT机制就是把一个保险箱放在客户端,请求的时候把整个保险箱送到服务端,服务端使用自己独有的钥匙打开保险箱获得或者更新里面的东西;

Server端的认证神器

注:以上部分为网上资料所查。

你可能感兴趣的:(【第三节】鉴权)