Session 解决了什么问题?

一、服务器怎么判断用户的登录状态?
1、简单分为这么几步:
  • 用户通过浏览器访问网站,服务器接受到请求后,生成一个有时长限制的 秘密口令,返回给用户,同时服务器也有备份了 秘密口令;
  • 浏览器接受到 秘密口令 并保存到本地;
  • 用户再次使用浏览器发出请求时,会取出 秘密口令 一起发送给服务端;
  • 服务器接受到 秘密口令 后,就开始在备份中寻找,有没有相同的且没有过期的 秘密口令 。如果有,那么说明用户已经登录。

2、Session 与 Cookie
  • Session:是上面提到的 服务端 生成和存储 秘密口令 的过程;

  • Cookie:是上面提到的 浏览端 存储和发送 秘密口令 的过程;


二、具体实现过程
1、浏览器 怎么接收 服务器 生成的 秘密口令

浏览器 和 服务器 之间是通过 HTTP 或 HTTPS 协议进行传输数据的,那么就在 HTTP 协议的 Header 增加一个字段用来传输 秘密口令,这个字段就是 Set-Cookie,浏览器会自动保存此字段的数据。


2、服务器 怎么接收 浏览器 回传的 秘密口令

浏览器 会在 HTTP 协议的 Header 增加一个字段用来发送 秘密口令,这个字段就是 Cookie,服务器通过此字段来接收 秘密口令 并进行下一步操作。


3、怎么保证其传输的安全性?

为了增加安全性,就给这个 密码口令 增加了很多属性,譬如:Secure 、 HttpOnly、Domain、Path等,通常我们把 密码口令 + 属性 这个格式的数据称之为 Cookie。Cookie 使用有其相应的规则,详情看这里!


三、怎么使用 session 到项目中?

可以通过现有的一些 库 来增加session到项目中,下面推荐几个不同场景下的 session 库:


1、Redis

2、express-session

Node.js 项目中,如果使用了express 开发的 web 服务,可以使用他来实现session。


四、参考文档
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值