【问题标题】:Stateless request in restfull webservicesRESTful Web 服务中的无状态请求
【发布时间】:2018-03-02 04:19:00
【问题描述】:

在宁静的网络服务中,我读到了类似下面的内容,

“客户端-服务器交互的限制是通信必须是无状态的。不应依赖服务器通过存储会话对象来维护应用程序状态。”

那么这是否意味着在 SOAP Web 服务中服务器与它们保存会话?我使用了soap用户界面工具来测试soap服务,我将在其中发送带有所有参数的请求XML并获得响应,restful web services在无状态方面与soap有什么不同?

【问题讨论】:

    标签: web-services restful-authentication restful-architecture


    【解决方案1】:

    不,这并不意味着 SOAP 在所有情况下都是有状态的。通常,您将所有服务设计为无状态的。在 SOAP 或 REST 中拥有有状态服务会引入复杂性,从而产生各种问题。

    但是,有些人使用状态来实现 SOAP/REST 服务,但他们通常不是很成功。维护状态需要服务器和客户端都知道并跟踪当前状态。

    简而言之,原则仍然是永远不要在服务中存储状态。调用操作时,它应该返回成功或失败代码,它不应该记住此客户端的最后一次操作没有成功。

    虽然 REST 说服务应该是无状态的,但您可以用有状态的方法来实现它。永远不要有状态,这会给服务消费者(即客户)带来很多困惑。如果操作是无状态的,可以这样想,您可以调用它并获得可重复的结果,但是如果它是有状态的,则操作可能会根据状态更改结果。

    还有状态操作限制了可扩展性,因为它必须记住更多。

    【讨论】:

    • 谢谢,既然如此,我们为什么要这么强调 Rest 中的无状态属性,所以最终你可以让你所有的 Web 服务,因为我理解的是无状态
    • 查看更新。您确实需要 SOAP、REST 和任何其他服务中的无状态服务。
    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 2020-02-06
    • 2017-04-05
    • 2023-03-23
    相关资源
    最近更新 更多