1.session是什么,cookie是什么,有什么使用场景
-
cookies:存于客户端,是针对每一个网站的信息,每一个网站只对应一个,其它网站不能访问,这个文件是保存在客户端的,每次你打相应网站,浏览器会查找这个网站的 cookies,如果有就会将这个文件起发送出去cookies文件的内容大致包函这些信息如用户名,密码,设置等。
-
session:存在于服务器端, 是针对每一个用户的,只有客户机访问,程序就会为这个客户新增一个 session。 session 里 主要保存的是用户的登录信息,操作信息等。这个 session 在用户访问结束后会被自动消失(如果超时也会)。
2.session和cookie的区别
-
session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
-
session中保存的是对象,cookie中保存的是字符串。
-
session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
-
session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。
3.Token是什么?
-
Session和Cookie机制来保持会话,会存在一个问题:客户端浏览器只要保存自己的SessionID即可,而服务器却要保存所有用户的Session信息,这对于服务器来说开销较大,而且不利用服务器的扩展(比如服务器集群时,Session如何同步存储就是个问题)!把Session信息让客户端来保管而且无法伪造,便有了Token机制。
-
Token俗称为“令牌”,它的构成是:
-
uid:用户唯一身份标识
-
timestamp:当前时间戳
-
sign:签名字符串,防止第三方伪造数据;签名密钥是存储在服务器端的,其它人无法知道
-
其它附加参数。
-
-
Token机制下的认证流程 Token机制其实和Cookie机制极其相似,主要有以下流程:
-
1、用户登录进行身份认证,认证成功后服务器端生成Token返回给客户端;
-
2、客户端接收到Token后保存在客户端(可保存在Cookie、LocalStorage、SessionStorage中);
-
3、客户端再次请求服务器端时,将Token作为请求头放入Headers中;
-
4、服务器端接收请求头中的Token,将用户参数按照既定规则再进行一次签名,两次签名若一致则认为成功,反之数据存在篡改请求失败。
-