懂视

有状态和无状态的区别

2024-09-23 05:39:01

你是想问有状态服务和无状态服务的区别吧?有状态服务和无状态服务的区别在于对于服务状态的处理。有状态和无状态服务是两种不同的服务架构,两者的不同之处在于对于服务状态的处理。服务状态是服务请求所需的数据,它可以是一个变量或者一个数据结构。无状态服务不会记录服务状态,不同请求之间也是没有任何关系;而有状态服务则反之。对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依据——两个来自相同发起者的请求在服务器端是否具备上下文关系。无状态请求,服务器端所能够处理的数据全部来自于请求所携带的信息,无状态服务对于客户端的单次请求的处理,不依赖于其他请求,处理一次请求的信息都包含在该请求里。最典型的就是WEB服务器。每次HTTP请求和以前都没有啥关系,只是获取目标URI。得到目标内容之后,这次连接就被杀死,没有任何痕迹,通过cookie保存token的方式传输请求数据。也可以理解为Cookie是通过客户端保持状态的解决方案。有状态服务则相反,服务会存储请求上下文相关的数据信息,先后的请求是可以有关联的。例如,在Web应用中,经常会使用Session来维系登录用户的上下文信息。虽然http协议是无状态的,但是借助Session,可以使http服务转换为有状态服务。