web-services - 有状态与无状态 Web 服务

标签 web-services stateless stateful

想象一个更复杂的 CRUD 应用程序,它具有三层架构并通过 Web 服务进行通信。客户端开始与服务器的对话并执行一些向导之类的操作。为了处理向导,客户端需要服务器给出的反馈。

我们针对这种方法开始了有关有状态或无状态 Web 服务的讨论。我结合自己的经验做了一些研究,把我引向了后面提到的问题。

具有以下属性的无状态 Web 服务(在我们的例子中):

+ high scalability
+ high availability
+ high speed
+ rapid testing
- bloated contract
- implementing more logic on server-side

但是我们可以划掉前两点,我们的应用程序不需要高可扩展性和可用性。

所以我们来到有状态的网络服务。我读过很多博客和论坛帖子,实现有状态 Web 服务的最有创意的一点是:
+ simplifies contract (protocol)
- bad testing
- runs counter to the basic architecture of http 

但是不是几乎所有的 Web 应用程序都有这些缺点吗? Web 应用程序使用 cookie、查询字符串、 session ID 和所有东西来避免 http 的无状态。

那么为什么它对 Web 服务如此糟糕呢?

最佳答案

因为在 Web 服务中保持状态是很困难的,如果您不是非常小心和/或迟早有经验,您可能会遇到一些很难找到的错误。

关于web-services - 有状态与无状态 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2588378/

相关文章:

java - 从 NetBeans 中的 WSDL 使用 .Net Web 服务时出错

c# - mvc 4 连接到外部网络服务

api - RESTful API 必须是无状态的,但是并发呢?

c# - 是否可以在 C# 中创建有状态 Web 服务?

filter - 我可以在 kafka 流应用程序的 peek 或过滤器或分支中执行一些状态操作吗?

android - SOAP和KSOAP之间的区别

java - 在通过 RESTful WS 返回之前将元数据附加到对象的适当方法是什么?

python - 仅使用常量python更改矩阵中的嵌套元素

java - 无状态 bean 的行为类似于有状态 session bean - 为什么?

object - 有没有一种方法可以将Map()对象传递给不同屏幕中的不同状态小部件?