我有一个概念,即 HTTP 是无状态的,因此基于 HTTP 的 SOAP(用于 Web 服务)也是无状态的。我曾经认为 state 的意思是“对象的状态”。例如,假设我有一个名为 Employee
的类和名为 setSalary
和 getSalary
的方法。如果 Web 服务的调用者调用 setSalary
并使工资为 1000,那么如果调用 getSalary
,调用者不一定会得到值 10000。当我测试 getsalary
得到1000(即setSalary
赋值),想知道Employee
对象的状态是怎么维护的。
Stack Overflow 问题 Webservices are stateless?提到了用于维护状态的 cookie 等技巧,但由于我没有做出任何明确的努力来维护状态,Employee
对象的状态是如何维护的?
如果我完全误解了状态/无状态的概念,请告诉我。
最佳答案
Stateless 表示服务的状态不会在后续请求和响应之间持续存在。 而在 stateful 中,状态在后续请求之间持续存在,即每个请求都需要知道并保留在先前请求中所做的更改。
银行应用是有状态应用的一个例子,用户首先登录,然后进行交易并注销。如果用户在注销后尝试进行交易,他将无法进行。
是的,http 协议(protocol)本质上是一个无状态协议(protocol),但为了使其有状态,我们使用了 HTTP cookie。因此,默认情况下是 SOAP。但它同样可以成为有状态的,取决于您使用的框架。
您提供的案例,您是尝试在后续请求中还是在同一请求中设置和获取值?只有这样,我才能对此发表评论。
关于web-services - 将 Web 服务(HTTP 上的 SOAP)称为无状态意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10408626/