【发布时间】:2012-05-11 15:00:00
【问题描述】:
我有一个概念,即 HTTP 是无状态的,因此 SOAP over HTTP(用于 Web 服务)也是无状态的。我曾经认为 state 的意思是“对象的状态”。例如,假设我有一个名为Employee 的类和名为setSalary 和getSalary 的方法。如果 Web 服务的调用者调用setSalary 并获得 1000 的薪水,那么如果调用 getSalary,调用者不一定会得到值 10000。当我测试 getsalary 并得到 1000(即分配的值setSalary),我想知道Employee 对象的状态是如何维护的。
堆栈溢出问题Webservices are stateless? 提到了用于维护状态的cookie 之类的技巧,但由于我没有做出任何明确的努力来维护状态,Employee 对象的状态是如何维护的?
如果我完全误解了有状态/无状态的概念,请告诉我。
【问题讨论】:
-
阅读您引用的 SO 帖子中提供的答案。它准确地解释了“无状态”的含义。简短回顾:网络服务不知道也不关心任何之前或之后的请求。它只处理您的请求并返回您要求的内容。
-
@Styxxy 当我调用 getSalary 时我得到了 1000,我感到很困惑,我没有做出任何努力来维持状态???那是怎么回事???
-
因为你的set请求已经被处理过了,所以get请求也会得到新的数据。 Web 服务的无状态性与应用程序中对象的状态没有太大关系,尽管它具有相同的名称。
标签: web-services http soap state stateless