REST Web 服务是有状态的吗?
Posted
技术标签:
【中文标题】REST Web 服务是有状态的吗?【英文标题】:Are REST Webservices stateful? 【发布时间】:2021-10-27 23:56:42 【问题描述】:我们现在正在我的大学谈论 REST Web 服务。 出现了“应用程序”和“交互”这两个术语。 我完全了解交互,但不太了解应用程序。 有人知道应用程序在 REST Web 服务的上下文中是什么意思吗?
论文“REST Webservices”是有状态的。 这是用自我描述的消息来解释的。 论据是,在自描述消息中描述了所需的数据格式。 我在互联网上没有找到任何证据,恰恰相反。
谁能解释这两个术语并向我解释为什么 REST Web 服务应该是有状态的?
干杯, 亨里克
【问题讨论】:
【参考方案1】:启发式:每当您想到REST 时,请以网络为例。它如何与网页和浏览器配合使用?
状态:
资源(网页)是有状态的。表示(字节)会随着时间而改变。
消息(http 请求和响应)是stateless - 您无需了解任何有关“会话”或“上下文”的信息即可理解消息。替代拼写 - 请求的含义完全独立于任何先前的请求。
Fielding 在讨论REST data view 时讨论应用程序和应用程序状态
...在在线词典中查找单词是一种应用程序,就像参观虚拟博物馆或复习一组课堂笔记以备考一样。每个应用程序都定义了底层系统的目标,可以根据这些目标来衡量系统的性能......
因此,应用程序的状态由其未决请求、连接组件的拓扑结构(其中一些可能正在过滤缓冲数据)、这些连接器上的活动请求、响应这些请求的表示的数据流以及在用户代理收到这些表示时对其进行处理。
只要没有未完成的请求,应用程序就会达到稳定状态;即,它没有待处理的请求,并且对其当前请求集的所有响应都已完全接收或接收到可以将它们视为表示数据流的程度。对于浏览器应用程序,此状态对应于“网页”,包括主要表示和辅助表示,例如内嵌图像、嵌入式小程序和样式表。 Fielding, 2000
【讨论】:
以上是关于REST Web 服务是有状态的吗?的主要内容,如果未能解决你的问题,请参考以下文章
在 React 中,一个类组件可以是无状态的,而现在使用 Hooks 一个函数组件可以是有状态的吗?
SOAP 和 REST Web 服务有啥区别? SOAP 可以是 RESTful 的吗?