SOAP(简单对象访问协议)
REST(表示状态转移)
SOAP 和 REST 不能直接比较,因为前者是一种协议,而后者是一种架构风格。
SOAP 和 REST 的主要区别在于客户端和服务器实现之间的耦合程度。 SOAP 像一个定制的桌面应用程序一样工作,与服务器紧密耦合。客户端和服务器之间存在严格的合同,一切似乎都破裂了,任何一方都被改变了。但是,REST 客户端更像是一个浏览器。它是一个通用客户端,知道如何使用协议和标准化方法。如果做得好,耦合就会减少。
除了入口点和媒体类型外,客户端应该在不了解 API 的情况下进入 REST。在 SOAP 中,客户端需要事先了解它将使用的所有内容。
REST 独立于协议。它不与 HTTP 耦合。我们可以将它用于任何有标准化 URI 方案的协议。但是,SOAP 本身就是一个协议。
SOAP 只支持 XML,但 REST 支持不同的格式,如文本、JSON、XML 等。而且我们知道如果我们使用 JSON,那么在有效负载方面肯定会处于更好的位置。
SOAP 可以使用任何通用传输(HTTP / HTTPS)或 RPC(远程过程调用)。但是,REST 只使用 HTTP/HTTPS
SOAP 不能使用 REST。但是,REST 可以使用类似于 HTTP 的 SOAP 或任何其他协议
SOAP 使用服务接口来公开业务逻辑。 REST 使用 URI 公开业务逻辑
在 Java 中,JAX-WS 用于 SOAP Web 服务。但是,Java JAX-RS 用于 REST Web 服务
SOAP 定义了要严格遵循的标准。 REST 没有定义任何标准,例如 SOAP
SOAP 比 REST 需要更多的带宽和资源。 REST 需要更少的带宽和资源。
SOAP 定义了自己的安全性。 REST 从底层传输继承安全措施
与 REST 相比,如今 SOAP 不太受欢迎