几种保持登录状态的方式

web基础系列

三种保持会话的方式

(一)session机制保持会话

存在的问题

  • 高并发情况下,会占用服务器大量内存
  • 分布式(一个业务分成几个子业务,部署在多个服务器)或者集群(一个业务部署在多个服务器)的时候,session不能共享。

解决方案

  • 高并发的时候可以将session存储到redis,如果用户长时间没有访问,将session存储到redis,就减少了服务器的压力。
  • 分布式或者集群的时候,先通过redis来判断用户状态也可以实现session共享.

(二)cookie机制保持会话

使用的方法

  • 登录验证后,创建登录凭证(比如:用户id+登录时间+过期时间),将登录凭证进行加密(为了避免暴露信息),加密后写到浏览器的cookie,以后,每次请求都发送cookie,服务器根据对应的解密算法对其进行验证(或者将加密过的cookie内容存储到数据库,请求服务器的时候,服务器在数据库进行查找)。

存在的问题

  • 每次访问都提交cookie,增加请求量
  • 其他访问可能需要cookie(比如说购物车的信息存放在cookie),浏览器对每个域存储的cookie的大小有限制,那么需要控制加密后的凭证。

(三)token机制保持会话

使用方法

  • cookie 和session依赖于浏览器,如果客户端不是浏览器,那么需要手动添加token(和cookie类似,也是登录凭证),将token添加到http header或者做为参数添加到url。

存在的问题

  • 每次访问的时候手动添加token
  • 和cookie 的方式一样增加了请求量

总结

不同的方式适合不同的应用场景,视情况使用。

相同点

  • 所有的方式目的都是为了验证用户状态。
  • 都需要在客户端存储凭证。

不同点

  • 第一种是通过是通过空间换时间,消耗内存存储session对象,但是判断用户状态不用复杂的逻辑。第二种第三种用时间换空间,在服务器端逻辑处理进行判断用户状态。
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker容器可以处于以下几种状态: 1. Created(已创建):当你使用`docker create`命令创建一个容器时,容器处于已创建状态。在这个阶段,Docker引擎会为容器分配资源并准备运行环境,但容器尚未启动。 2. Running(运行中):当使用`docker start`命令启动一个已创建的容器时,容器进入运行状态。在这个状态下,容器的进程正在后台运行,并且可以通过Docker引擎进行管理和监控。 3. Paused(已暂停):通过`docker pause`命令,可以将运行中的容器暂停。在暂停状态下,容器的所有进程都被冻结,但容器的状态保持不变。这个状态可以通过`docker unpause`命令解除。 4. Restarting(重启中):当容器正在重新启动时,它将进入重启状态。这可能是由于容器的配置更改或容器进程的异常终止导致的。 5. Exited(已退出):当容器中的主要进程终止或退出时,容器将进入已退出状态。这可能是由于进程正常退出、执行完毕或异常终止等原因引起的。在这个状态下,容器不再运行,但其文件系统和资源仍然存在。 6. Dead(已停止):如果Docker引擎检测到容器的主要进程无法启动或异常终止,容器将进入已停止状态。这个状态表示容器无法正常运行,并且需要修复或重新创建。 需要注意的是,上述状态仅涉及容器本身,而不包括容器所在的宿主机状态。此外,容器状态的具体名称和描述可能在不同的Docker版本中有所变化,但概念和原则保持一致。你可以使用`docker ps`命令查看当前活动的容器及其状态

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值