web-services - 将 Web 服务(HTTP 上的 SOAP)称为无状态意味着什么?

标签 web-services http soap state stateless

我有一个概念,即 HTTP 是无状态的,因此基于 HTTP 的 SOAP(用于 Web 服务)也是无状态的。我曾经认为 state 的意思是“对象的状态”。例如,假设我有一个名为 Employee 的类和名为 setSalarygetSalary 的方法。如果 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/

相关文章:

java - JAX-WS Web 服务中 BindingProvider 的用途

java - 如何在服务器端将 HTTP POST 请求正文作为 Java 字符串获取?

http - 如何在Flutter中使用DIO将多个文件,文件列表发布到服务器

HTTP 1.1 到 HTTP/2 : what about headers?

python - 如何在 python 中通过 Soap 发送文件?

ASP.NET 单声道 : How to send SOAP instead of HTML?

java - 如何在没有soap webService接口(interface)的情况下使用javax.xml.ws

php - 如何在 Cakephp 的 RESTful api 的 url 中提供字符串?

jquery - 在数据表中设置来自Web服务的Json数据

java - IBM RAD/RSA : "Generate Java bean skeleton" Does Not Display When Right-Clicking WSDL File