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. .netcore使用autofac

    .netcore3.1使用autofac (.netcore中本身已经实现了IOC容器,其实没有必要替换成autofac.如果非常习惯autofac,替换也是无可厚非的.) 第一步.在项目中引入Aut ...

  2. JVM学习(五) -执行子系统

    虚拟机和物理机的区别.两种都有代码执行能力.物理机的执行引擎是建立在处理器.硬件.指令集和操作系统上.而虚拟机的执行引擎是有自己实现的.因此可以自行的制定指令集和执行引擎的结构关系. 个人理解:分为三 ...

  3. Group指定的方式如下: @Test(groups = {"fast", "unit", "database" })

    Group指定的方式如下: @Test(groups = {"fast", "unit", "database" }) public voi ...

  4. inno setup win10 创建菜单里面卸载图标

    1.win10自己注册表关联的卸载图标 会隐藏 卸载图标.现在的项目法是 不写注册表 直接 在目标文件里面创建快捷方式 移动到菜单里面 ; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 ...

  5. Linux C 获取本机所有网卡的 IP,Mask

    0 运行环境 本机系统:Windows 10 虚拟机软件:Oracle VM VirtualBox 6 虚拟机系统:Ubuntu 18 1 代码 #include <sys/ioctl.h> ...

  6. ClassNotFoundException: java.util.ArrayList$SubList 错误

    ClassNotFoundException: java.util.ArrayList$SubListjava.lang.RuntimeException: java.lang.ClassNotFou ...

  7. 1. 线性DP 120. 三角形最小路径和

    经典问题: 120. 三角形最小路径和  https://leetcode-cn.com/problems/triangle/ func minimumTotal(triangle [][]int) ...

  8. minishell的实现

    直接上各个模块的代码,注释都在文档代码中,非常详细,加上最后的Makefile文件完全可以自行运行看懂: main函数一个文件main.c 1 /* 2 minishell实现的功能:简单命令解析.管 ...

  9. invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

    解决办法: $ sudo nginx -c /usr/local/etc/nginx/nginx.conf $ sudo nginx -s reload

  10. Vue知识点回顾(一)

    一.什么是vue? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不 ...