1.COOKIE使用和优缺点

1.1 cookie原理:用户名+密码

  • cookie是保存在用户浏览器端,用户名和密码等明文信息

1.2session使用原理

  • session是存储在服务器端的一段字符串,相当于字典的key

  • 1.用户向服务器发送用户名和密码。
  • 2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。
  • .3服务器向用户返回session_id,session信息都会写入到用户的Cookie。
  • 4.用户的每个后续请求都将通过在cookie中取出session_id传给服务器。
  • 5.服务器收到session_id并对比之前保存的数据,确认用户的身份。

1.3session使用缺点

  • 1.这种模式最大的问题是,没有分布式架构,无法支持横向扩展。
  • 2.如果使用一个服务器,该模式完全没有
  • 3.但是,如果它是服务器群集或面向服务的跨域体系结构的话,则需要一个统一的session数据库库 来保存会话数据实现共享, 问题。
  • 4.这样负载均衡下的每个服务器才可以正确的验证用户身份。

1.4常用解决session方法

  • 1.一种解决方案是通过持久化session数据,写入数据库或文件持久层等。
  • 2.收到请求后,验证服务从持久层请求数据。
  • 3.依赖于持久层的数据库或者问题系统,会有单点风险,如果持久层失败,整个认证体系都会挂掉。

  • 第一种:没有session持久化
  1. 没有分布式架构,无法支持横向扩展
  2. session默认存储在内存中,如果把代码部署在多台机器上,session保存到了其中某一台机器 的内存中
  3. 用户如果在A机器上登录,只有A机器的内存中存了这个session的key,如果请求nginx路由到B 机器,B机器内存中没有这个session数据,就需要从新登录
  • 第二种:写入数据库或文件持久层

  1.解决了横向扩展问题

  2.数据库持久层出现问题,所有集群都没办法登录,单点故障

  3.如果数据放到mysql中,用户量大,查询很慢。效率很低

day4(cookie与session的原理及区别)的更多相关文章

  1. COOKIE和Session的原理及异同

    COOKIE和Session的原理及异同 1. cookie的创建和读取 cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的w ...

  2. 正确理解cookie和session机制原理

    php中cookie和session是我们常用的两个变量了,一个是用户客户端的,一个用在服务器的但他们的区别与工作原理怎么样,下面我们一起来看看cookie和session机制原理吧. cookie和 ...

  3. Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结

    1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...

  4. Cookie和Session的原理和异同

    Cookie和Session的原理和异同 原理: cookie: 1.创建Cookie 当用户第一次浏览某个使用Cookie的网站时,该网站的服务器就进行如下工作: ①该用户生成一个唯一的识别码(Co ...

  5. Cookie、session和localStorage的区别

    一.Cookie.session和localStorage的区别 cookie的内容主要包括:名字.值.过期时间.路径和域.路径与域一起构成cookie的作用范围.若不设置时间,则表示这个cookie ...

  6. 网络知识===cookie 、session、JSESSIONID的区别

    cookie .session ? 让我们用几个例子来描述一下cookie和session机制之间的区别与联系.笔者曾经常去的一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微 ...

  7. 3、Cookie与Session之间有哪些区别或者是优缺点?

    Cookie与Session之间有哪些区别或者是优缺点? 知道了Cookie与Session,我们来做一些简单的总结:   1.Cookie可以存储在浏览器或者本地,session只能存在服务器    ...

  8. cookie ,session 和localStorage的区别详解

    2019独角兽企业重金招聘Python工程师标准>>> cookie ,session 和localStorage的区别详解 博客分类: js 当你在浏览网站的时候,WEB 服务器会 ...

  9. 描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理

    Session用于保存每个用户的专用信息. 每个客户端用户访问时,服务器都为每个用户分配一个唯一的会话ID(Session ID) . 她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右) ...

随机推荐

  1. Dapr Golang HTTP 调用

    Dapr Golang HTTP 调用 版本介绍 Go 版本:1.15 Dapr Go SKD 版本:0.11.1 工程结构 从上图可知,新建 3 个 Go 启动项目,cmd 为启动项目目录,其中 c ...

  2. Lagrange插值C++程序

    输入:插值节点数组.插值节点处的函数值数组,待求点 输出:函数值 代码如下:把printf的注释取消掉,能打印出中间计算过程,包括Lagrange多项式的求解,多项式每一项等等(代码多次修改,这些pr ...

  3. 常用简单电脑bai快捷键大全

    Ctrl+C 复制.duCtrl+X 剪切.Ctrl+V粘贴.Ctrl+Z撤销.Ctrl+A全选所有文件.zhiDelete删除.daoShift+Delete避开回收站直接永久删除(不可找回).F3 ...

  4. Manacher (马拉车) 算法:解决最长回文子串的利器

    最长回文子串 回文串就是原串和反转字符串相同的字符串.比如 aba,acca.前一个是奇数长度的回文串,后一个是偶数长度的回文串. 最长回文子串就是一个字符串的所有子串中,是回文串且长度最长的子串. ...

  5. solr全文检索学习

    序言: 前面我们说了全局检索Lucene,但是我们发现Lucene在使用上还是有些不方便的,例如想要看索引的内容时,就必须自己调api去查,再例如一些添加文档,需要写的代码还是比较多的 另外我们之前说 ...

  6. tp3.2验证码

    切换验证码 document.getElementById('img_code_1').src="__URL__/verify/"+Math.random(1,9999); 生成验 ...

  7. 为什么使用MongoDB

    MongoDB vs MySQL Nosql vs RDBMS(关系型数据库) MongoDB采用类似Json的形式存储数据而不是结构性的表 MongoDB的分片机制支持海量数据的存储和扩展,并有完整 ...

  8. Effective Modern C++ ——条款6 当auto型别不符合要求时,使用带显式型别的初始化物习惯用法

    类的代理对象 其实这部分内容主要是说明了在STL或者某些其他代码的容器中,在一些代理类的作用下使得最后的返回值并不是想要的结果. 而他的返回值则是类中的一个容器,看下面的一段代码: std::vect ...

  9. 四、c++总结------linux多线程服务端编程

  10. 重写ceph-lazy

    前言 这个工具最开始是从sebastien的blog里面看到的,这个是 Gregory Charot(工具的作者)写的,通常我们在获取一个ceph的信息的时候,需要敲一连串的命令去获得自己需要的信息, ...