web基础系列

  • 总结几种常见web攻击手段极其防御方式
  • 总结几种常见的安全算法
  • 几种保持登录状态的方式
  • 白话讲session
  • 这是我的博客目录,欢迎阅读

三种保持会话的方式

(一)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对象,但是判断用户状态不用复杂的逻辑。第二种第三种用时间换空间,在服务器端逻辑处理进行判断用户状态。

几种保持登录状态的方式相关推荐

  1. php和app保持登录状态,关于iOS开发者中APP保持登录状态的几种实现方式和一些思考...

    在实际开发中几乎所有的APP都会存在用户体系,假如没有涉及用户体系的APP,提交审核的时候有很大概率会被苹果爹地直接拒绝不允许上架.而有了用户体系,那么就肯定会存在登录以及保持登录的需求,要不然用户每 ...

  2. Stateflow中三种状态转移方式的区别(默认转移、外部转移、内部转移)

    文章目录 前言 一.让人头秃的自增循环 二.默认转移和内部转移的区别 三.抛弃during追求entry 总结 前言 Stateflow中有三种典型的状态转移方式:默认转移.外部转移.内部转移. 其中 ...

  3. app维持h5登录状态_维持团队设计质量的5种工具

    app维持h5登录状态 Whenever you've worked in a team of designers, there has certainly been a time when some ...

  4. 在Forms验证模式下,实现多个站点(SubDomain相同)共享同一用户登录状态

    原文:http://caomao.cnblogs.com/archive/2005/07/05/186606.html 今天一早看了dudu关于二级域名Cookie的问题及解决方法,认为dudu的原理 ...

  5. 单点登录常见解决方式和阿里云短信服务

    1 单点登录(SSO) 三种常见方式: 1.1 第一种:session广播机制实现(已淘汰) 概念:就是session复制,一个模块登录后,该模块session存放用户登录信息,再把该session复 ...

  6. 4种常见的鉴权方式及说明

    一.什么是鉴权 鉴权(authentication)是指验证用户是否拥有访问系统的权利.传统的鉴权是通过密码来验证的.这种方式的前提是,每个获得密码的用户都已经被授权.在建立用户时,就为此用户分配一个 ...

  7. 一种灵活可靠的工作方式:组件化设计与开发

    一种灵活可靠的工作方式:组件化设计与开发 2017/03/20阅读 6.9k 评论 3收藏 174 零基础学产品,BAT产品总监带,2天线下集训+1年在线课程,全面掌握优秀产品经理必备技能.了解详情 ...

  8. Asp.Net使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖

    小论坛地址: http://rayyu.5d6d.com/thread-9444-1-1.html 正文: 首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. ...

  9. spring boot +vue用什么记录登录状态_2019年web前端Vue面试题总结

    点击右上方红色按钮关注"web秀",让你真正秀起来 面试必备:2019Vue经典面试题总结(含答案) 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写 ...

最新文章

  1. 重磅图书——PHP MySQL开发新圣经
  2. Java基础点——面向对象(中)
  3. OpenCV长方形squares探测器的实例(附完整代码)
  4. MyEclipse/Eclipse快捷键调试大全
  5. 字符串中最后一个词组的长度 Length of Last Word
  6. pep 8 规范的一些记录
  7. P4161-[SCOI2009]游戏【dp】
  8. 开源开放 | 中国近代历史人物知识图谱
  9. Twitter 宣布抛弃 Mesos,全面转向Kubernetes
  10. 【解决】Vsftp匿名上传问题
  11. 让谷歌、百度最快最多地收录您的网站
  12. 【测试】软件测试用例设计
  13. mysql sql 字符串拼接_深入讲解SQL中的字符串拼接
  14. AR图书,看着很美其实有点坑
  15. 万万没想到:用理工科思维理解世界-读后感
  16. 《超越对手-大项目售前售后的30种实战技巧》读书心得
  17. win10下的wsl真是太好用了
  18. java speech sdk_Microsoft Speech SDK开发包 使用
  19. 基于FPGA的图像平滑处理
  20. 《SAAS 架构设计》读后感

热门文章

  1. Stripes注解官方释义
  2. spoj - 7259 LITE
  3. unity 安装 PlayMaker 报错
  4. Android-App-启动优化全记录,这么香的技术还不快点学起来
  5. docker安装oracle数据库详细步骤
  6. 华南理工大学软件学院2016考研复试机试第一题代码(Java)
  7. ps -aux ps -ef 命令
  8. 一个排列中任意两个元素对换,排列改变奇偶性。
  9. 置换怎么表示成轮换_轮换换成对换有多少种方法?
  10. SQL Server 安装注意事项