session、token与cookie

1、http登录无状态,因为是短连接,一次连接。连接时只知道是哪台机器,但是不知道登录用户。但,服务端常常需要判断登录用户,知道请求是哪个用户发起的,这就是会话管理。

2、基于session登录:

服务端使用session技术,浏览器使用cookie技术;

2.1、当用户第一次访问服务端的时候,服务端就会创建一个对象,里面是用户登录成功的凭证,代表着用户的一次会话过程,里面用于存放资料。服务器为每一个session分配了一个sessionID,以保证每个用户都有一个不同的session对象。

2.2、服务器创建完session后,会把sessionID以cookie的形式返回用户所在的浏览器,这样用户在下一次向服务器发送请求的时候,就会通过cookie把sessionid传回服务器,服务器根据sessionid找到与该用户对应的session对象。

2.3、session通常都有失效时间的设定,比如2小时。只要在session时间时间内,浏览器有发生新的请求给服务器,那么服务器会在当前的时间再延长两个小时。

2.4、session的弊端为如果服务器关闭,则用户信息失效(可以通过存储seesion在数据库中,而非缓存中解决这个问题)。

2.5、seesion这种存储在当前域名下的cookie中,所有seesion这种方式只在前端后为同一域名下有效(?)。

3、token登录

用户在浏览器输入账号密码,服务器根据登录成功后,通过加密等方式生成token,然后token传回去给前端,存储在cookie或者localStorage中。在接下来的请求中,将token通过url参数或者HTTP Headert头部传入到服务器。服务器检验token是否有效。

4、cookie传输(4K)

cookie是浏览器中一小段文本文件,同域情况下,cookie会在随后的请求中携带。

格式是:字符串key-value;

存储有效期:可以自行通过设置expires进行具体的日期设置,如果没设置,默认是关闭浏览器时失效。

5、seesion与token的区别

两者最大的区别是,session的主要用户信息存储在服务端,而token是经过加密的信息,主要存储在客户端中,在客户端请求时携带在请求头进行请求。sessionid是存在同域的cookie中,同域时主动携带。而token需要手动进行设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值