几种保持登录状态的方式

几种保持登录状态的方式

三种保持会话的方式

(一)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对象,但是判断用户状态不用复杂的逻辑。第二种第三种用时间换空间,在服务器端逻辑处理进行判断用户状态。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112529.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python日志格式[通俗易懂]

    python日志格式[通俗易懂]python输出日志时的格式化输出日志时的格式化名称 说明%(levelno)s 打印日志级别的数值%(levelname)s 打印日志级别名称%(pathname)s 打印当前执行程序的路径,其实就是sys.argv[0]%(filename)s 打印当前执行程序名%(funcName)s 打印日志的当前函数%(lineno)d 打印日志的当前行号%(asctime)s 打印日…

    2022年6月9日
    50
  • 运维架构简单剖析讲解

    运维架构简单剖析讲解运维架构简单剖析讲解随着IT运维的不断发展,尤其的Linux的飞速发展,越来越多的企业开始使用Linux操作系统平台,例如CentOS、RedHat、Ubuntu、Fedora等等,成千上亿个网站涌现在当今互联网,互联网已经成为必不可少的工具,那今天我们跟大家一起来分享讨论目前用的最多的Linux下主流网站架构:LVS+KEEPALIVED(heartbeat)+Squid+Nginx/Apache+JAVA/PHP+MySQL/MariaDB等,分享一个简单的拓扑图,供各位同学实验参考一般网站总体

    2022年7月17日
    15
  • ntp时间服务器 时间同步

    具体两种模式1.服务器数量比较少,可以直接与公网时间服务器同步2.本地服务器较多,在本地设置时间同步服务器,  时间同步的两个命令ntpd :        校准时间,一点点的校准过来时间的,最终把时间慢慢的校正对。                     ntpd服务可以在修正时间的同时,修正cputick

    2022年4月9日
    120
  • DNS 负载均衡

    DNS 负载均衡DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。 最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地…

    2022年7月14日
    13
  • 自定义美化博客园

    自定义美化博客园

    2021年11月4日
    36
  • verilog序列生成器最少移位寄存器实现[通俗易懂]

    verilog序列生成器最少移位寄存器实现[通俗易懂]verilog序列生成器最少移位寄存器实现序列生成器序列生成器实现方式移位寄存器版(输入序列版)最少移位寄存器版VCS仿真![仿真](https://img-blog.csdnimg.cn/42e1e4f55f4443faa70b38adad7c5db1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBASmFydmlz56CB5ZGY,size_20,color_FFFFFF,t_7

    2022年7月16日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号