继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【备战春招】第12天 cookie 和 session 实现登录

stb烙饼
关注TA
已关注
手记 84
粉丝 2
获赞 4

课程章节:第3章 技术选型和知识点介绍(下) 3-6

课程讲师双越

课程内容

使用 session 实现登录的机制

session表示一次会话,在服务端是一个集合。我们使用session存储和用户相关的信息,那么服务器怎么知道当前用户是哪个session呢?使用cookie。

浏览器访问服务器,会携带cookie。将一个 userId 属性存到cookie中,在服务端拿到cookie中的userId,再到session 集合中,找到这个userId,就能确定用户的身份了。

图片描述

为什么把 session 存到 redis 中?

如果session存在nodejs进程中,设置一个变量来保存session,来一个用户就往里塞,那么它占用的内存会越来越大。但是,操作系统会限制每一个进程的最大可用内存。比如在32位系统中,node 进程的最大可用内存是0.7g,如果64位系统,最大可用内存是1.4g。所以,如果把session放到内存中,是没法保证性能和稳定性的

服务器的内存可能是8g,16g,甚至更大,但它给一个node进程的最大可用内存也就1个多g。如果开启多个进程的 nodejs,虽然看起来 session 可用的内存多了,但进程之间的数据是隔离的,如果用户先访问了进程1,存储了session,过了一会又访问了进程2,此时该进程中的session并没有用户的数据。

基于以上两个原因,我们把session存到redis 中

图片描述

图片描述

课程收获

这节课学习了实现登录功能的理论知识和技术原因,比较偏底层,对于扩展知识面很有帮助。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP