前端开发登录状态的保持,主要有两种方法:cookie+session 和 token技术
1、背景
登录状态保持,起源于http的无状态,无记忆:
-
最早的时候,web的作用就是网页的浏览。 服务器只用提供简单的网页浏览器操作即可,不用记住刚刚谁发了请求,更没有登录,注册之类的操作
-
http设计之初就是无状态的
-
http无状态: http不会记住每一次的请求 就跟公交车司机不会记住乘客一样
-
这段时间很嗨皮,业务逻辑非常简单。
2、介绍一下名词:Session、cookie、token,如下:
1.Session[ˈseʃn]会话:客户端A访问服务器,服务器存储A的数据value,把key返回给客户端A,客户端A下次带着key(session ID)来访问服务器,服务器就能给出客户端A的数据。如果负载均衡,客户端A访问了另一个服务器,那个服务器没有客户端A的数据。
2.Cookie[ˈkʊki]:客户端A访问服务器,服务器返回cookie给客户端A,客户端A存储cookie,下次需要带着cookie访问服务器,服务器返回相应的数据。
3.Token[ˈtəʊkən] 令牌:客户端A访问服务器,服务器给了客户端token,客户端A拿着token访问服务器,服务器验证token,返回数据。
3、下面详细介绍一下session、cookie、token的区别,详细如下:
1.session 和cookie区别:
· 数据存放位置不同:Session数据是存在服务器中的,cookie数据存放在浏览器当中。
· 安全程度不同:cookie放在服务器中不是很安全,session放在服务器中,相对安全。
· 性能使用程度不同:session放在服务器上,访问增多会占用服务器的性能;考虑到减轻服务器性能方面,应使用cookie。
· 数据存储大小不同:单个cookie保存的数据不能超过4K,session存储在服务端,根据服务器大小来定。
2.token 和session区别:
· token是开发定义的,session是http协议规定的;
· token不一定存储,session存在服务器中;
· token可以跨域,session不可以跨域,它是与域名绑定的。