实现用户登录到底使用cookie还是session?

我们一般都知道 cookie 是存在浏览器端的,session 是存在服务端的,但是实现用户登录具体是怎么用这两个东西的呢,今天来详细的说一下!

实现登录的两种方式

方式一:存储在客户端
将用户数据加密,然后存储在cookie中。这种专业术语叫做client side session。flask采用的就是这种方式,但是也可以替换成其他形式。

优点:cookie 保存在客户端,不占用服务器资源
缺点:存在安全问题,如果你的加密方式泄露,别人就可以模拟用户登录

方式二:存储在服务端
通过 session 得到一个 session_id 存储在 cookie 中,然后具体的数据则是保存在服务器 session 中。如果用户登录完成,则服务器会在 cookie 中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。

优点:安全性高
缺点:session 是保存在服务端的,每个用户都会产生一个session,并发访问多的话,每个用户都会生成session,消耗内存

如何判断使用哪种方式

cookie 保存在客户端,不占用服务器资源,对于并发比较高的网站并且安全性不需要特别特别高,建议使用方式一,如一些论坛之类的

session 是保存在服务端的,每个用户都会产生一个session,并发访问多的话,每个用户都会生成session,消耗内存,所以对于并发不高的网站,如后台管理系统,可以使用 session,更安全

更新

现在用 JWT 的比较多,可以看 这篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lvan的前端笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值