REST Webservices是否为有状态及REST语境下Application与Interaction释义咨询
REST相关术语与状态特性解答
术语定义
Application(REST语境下)
- 狭义上指对外暴露REST接口、承载核心业务逻辑的服务端应用实体,是资源定义、请求处理、数据持久化的载体,例如提供用户信息查询能力的用户服务、处理订单流转的订单服务都属于该范畴。
- 部分语境下也指代由客户端、服务端共同组成的、完成特定业务目标的分布式应用集合,核心特征是具备独立可调用的业务能力。
REST的"有状态"表述澄清
首先明确业界通用的REST架构约束:
REST架构的原生无状态约束,指服务端不存储任何客户端会话上下文,每个请求都携带服务端处理所需的全部信息,服务端无需依赖历史请求记录即可完成当前请求的处理。
你课程中提到的"REST Webservices是有状态的"属于表述维度的差异,和上述无状态约束并不冲突:
- 该论断的核心是对自描述消息属性的简化描述:REST要求请求/响应均为自描述消息,消息中会明确携带数据格式(如
Content-Type: application/json)、操作语义、状态标识等信息,所有交互所需的状态信息都被封装在消息本身传递,相当于消息自身是"带状态"的,而非服务端存储状态。 - 你检索到的相反结论,都是基于"服务端是否存储会话状态"这一通用维度的判断,和课程中基于消息属性的表述完全是两个维度的定义,不存在对错冲突,只是表述的前提语境不同。
内容的提问来源于stack exchange,提问作者Henrik Mader
相关产品推荐
相关产品推荐

