登陆状态session、cookie和token的区别

297 阅读2分钟

前端开发登录状态的保持,主要有两种方法:cookie+session 和 token技术

1、背景

登录状态保持,起源于http的无状态,无记忆:

  1. 最早的时候,web的作用就是网页的浏览。 服务器只用提供简单的网页浏览器操作即可,不用记住刚刚谁发了请求,更没有登录,注册之类的操作

  2. http设计之初就是无状态的

  3. http无状态: http不会记住每一次的请求 就跟公交车司机不会记住乘客一样

  4. 这段时间很嗨皮,业务逻辑非常简单。

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不可以跨域,它是与域名绑定的。