有状态服务和无状态服务的区别

有状态和无状态服务是两种不同的服务架构,两者的不同之处在于对于服务状态的处理。服务状态是服务请求所需的数据,它可以是一个变量或者一个数据结构。无状态服务不会记录服务状态,不同请求之间也是没有任何关系;而有状态服务则反之。对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依据——两个来自相同发起者的请求在服务器端是否具备上下文关系。

无状态服务

无状态请求,服务器端所能够处理的数据全部来自于请求所携带的信息,无状态服务对于客户端的单次请求的处理,不依赖于其他请求,处理一次请求的信息都包含在该请求里。最典型的就是WEB服务器。每次HTTP请求和以前都没有啥关系,只是获取目标URI。得到目标内容之后,这次连接就被杀死,没有任何痕迹,通过cookie保存token的方式传输请求数据。也可以理解为Cookie是通过客户端保持状态的解决方案。

有状态服务

有状态服务则相反,服务会存储请求上下文相关的数据信息,先后的请求是可以有关联的。例如,在Web 应用中,经常会使用Session 来维系登录用户的上下文信息。虽然http 协议是无状态的,但是借
助Session,可以使http 服务转换为有状态服务。

总结

有状态服务需要维护大量的信息和状态,在性能方面要稍逊于无状态服务器;无状态服务在处理简单服务方面有优势,服务之间没有联系,易于扩展,但处理复杂任务需要额外的组件来协助(以有状态服务的形式实现)。

有状态服务和无状态服务的区别相关推荐

  1. 有状态服务和无状态服务

    概念 服务一般分为有状态服务(Stateful Service)和无状态服务(Stateless Service).它们的区别是,当请求发起后,服务在服务端运行时是否需要关联上下文. 有状态服务,服务 ...

  2. (3) ebj学习:有状态bean和无状态bean区别

    1 区别 有状态bean : 客户端通过JNDI访问有状态bean, 服务端new该bean,并返回该代理对象 有状态bean : 客户端通过JNDI访问有状态bean, 服务端该bean是单例模式, ...

  3. mysql有状态无状态_k8s statefulSet 有状态应用和无状态应用区别

    一.定义: 无状态服务:就是没有特殊状态的服务,各个请求对于服务器来说统一无差别处理,请求自身携带了所有服务端所需要的所有参数(服务端自身不存储跟请求相关的任何数据,不包括数据库存储信息) 有状态服务 ...

  4. 状态服务器与无状态服务器(要点)

    对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依旧是指两个来自相同发起者的请求在服务器端是否具备上下文关系.如果是状态化请求,那么服务器端一般都要保存请求的相关信息,每个请求可以默认地使用 ...

  5. EJB3.0框架实例----区分有状态bean和无状态bean

    1.通过这个例子可以区分,有状态bean和无状态bean中的数据会不会混淆; 2.一种取巧的做法是:在建立的客户端的工程上右键,选择build path--->把服 务端的EJB工程导入的,新建 ...

  6. JWT有状态登陆与无状态登陆

    单点登录与JWT JWT 全称: Json Web Token .作用: JWT 的作用是 用户授权(Authorization) ,而不是用户的身份认证(Authentication) .用户认证  ...

  7. 什么是有状态登录和无状态登录

    1.有状态登录 那缺点是什么? • 服务端保存大量数据,增加服务端压力 • 服务端保存用户状态,无法进行水平扩展 • 客户端请求依赖服务端,多次请求必须访问同一台服务器(如果集群了,相当于启动了多个t ...

  8. Java - 有状态bean和无状态bean

    有状态Bean和无状态Bean的本质区别:声明周期 1. 前言:EJB EJB:称为企业Java beans,是基于分布式事务处理的企业级应用程序的组件. Sun公司发布的文档中对EJB的定义是:EJ ...

  9. 有状态bean与无状态bean

    在学习bean的作用域的时候,了解了这个问题. bean5种作用域:分别是:singleton.prototype.request.session.gloabal session 接下来就讲一下有状态 ...

最新文章

  1. Tornado自定义分布式session框架
  2. Ubuntu/Debian 系统切换Java(JVM),修改Java版本,JAVA_HOME
  3. 2021年春季学期-信号与系统-第十次作业参考答案-第二小题
  4. keepalived+nginx保持高可用配置
  5. Java基础 HashMap的添加 修改 遍历 Map.Entry Map.entrySet()的使用及实例
  6. ES11新特性_可选链操作符---JavaScript_ECMAScript_ES6-ES11新特性工作笔记064
  7. Leader:这样的 Bug 你也写的出来???
  8. PHP动态属性和stdclass
  9. Java - 调用 echarts 提供的地图压缩方法压缩地图
  10. SecureCRT 终端仿真程序 v7.0.0.326 中文绿色便携破解版
  11. FCP-报表交付工程师考试经验
  12. 08年计算机组成原理自考试卷,2008年04月自学考试02318《计算机组成原理》试题...
  13. 数字化名词解释—数字化转型
  14. Fe3O4纳米颗粒的表面接枝修饰/氨基乙酸|L-半胱氨酸(L-Cys)修饰的Fe3O4包裹TiO2(Fe3O4@TiO2/L-Cys)复合纳米粒子
  15. 第一性原理 《禅与计算机程序设计艺术》 / 陈光剑
  16. 人工智能英文缩写怎么读,人工智能英文缩写大全
  17. 从零开始搭建服务器之登录和登出远程服务器
  18. 降采样,过采样,欠采样,子采样,下采样,上采样,你学会了吗?【总结】
  19. 怎么用python做自动化测试?
  20. ECMAScript6

热门文章

  1. FL Studio步进音序器中的节奏怎么制作
  2. 业界有哪些峰会?历届峰会又有哪些专家演讲了什么议题?
  3. ZeroMemory 与 memset
  4. 为什么看好云计算?2021全球IT行业十大预测告诉你!
  5. 第四单元 从个体学习到团队学习1,2
  6. 初中数学题目(实数) - 第十小题解答
  7. LCD timing设置
  8. 如何抓住蝴蝶效应中的那只蝴蝶
  9. 常见计算机病毒有哪些症状,电脑中病毒的症状有哪些
  10. jquery 图片放大镜插件