在安静的网络服务中,我读了类似下面的内容,
"客户端 - 服务器交互的约束是通信必须是无状态的。不应依赖服务器来通过存储会话对象来维护应用程序状态。"
在SOAP Web服务中是什么意思,服务器会保存与它们的会话?我已经使用soap用户界面工具来测试soap服务,我将在其中发送带有所有参数的请求XML并将获得响应,宁静的Web服务在哪种方式与Soap的无状态有所不同?
答案 0 :(得分:1)
不,这并不意味着SOAP在所有情况下都是有状态的。通常,您将所有服务设计为无状态。在SOAP或REST中提供有状态服务会引入复杂性,从而产生各种问题。
然而,有些人使用state实现SOAP / REST服务,并且它们通常不是很成功。维护状态要求服务器和客户端都知道并跟踪当前状态。
因此,简而言之,原则永远不会在服务中存储状态。在调用操作时,它应该返回成功或失败的代码,它不应该记住该客户端的最后一个操作没有成功。
虽然REST说服务应该是无状态的,但你可以用有状态的方法实现它。永远不会有状态,它会给服务消费者(即客户)带来很多困惑。如果一个操作是无状态的,你可以调用它并获得可重复的结果,但是如果它是有状态的,则操作可能会根据状态改变结果。
同样有状态的操作限制了可扩展性,因为它必须记住更多。