gpt4 book ai didi

web-services - 比较和对比 REST 和 SOAP Web 服务?

转载 作者:行者123 更新时间:2023-12-03 05:19:41 25 4
gpt4 key购买 nike

我目前发现类似的情况都是使用互联网协议(protocol)(HTTP)在消费者和提供商之间交换数据。

区别在于:

  1. SOAP 是一种基于 XML 的消息协议(protocol),而 REST 是一种架构风格
  2. SOAP 使用 WSDL 在消费者和提供者之间进行通信,而 REST 仅使用 XML 或 JSON 来发送和接收数据
  3. SOAP 通过调用 RPC 方法来调用服务,REST 只是简单地通过 URL 路径调用服务
  4. SOAP 不会返回人类可读的结果,而 REST 结果只需使用纯 XML 或 JSON 即可读取
  5. SOAP 不仅仅基于 HTTP,它还使用其他协议(protocol),例如 SMTP、FTP 等,REST 仅基于 HTTP

这就是我所知道的它们之间的差异。谁能纠正我并添加更多内容。

最佳答案

SOAP uses WSDL for communication btw consumer and provider, whereasREST just uses XML or JSON to send and receive data

WSDL 定义客户端和服务之间的契约,并且本质上是静态的。在 REST 的情况下,合约有些复杂,由 HTTP、URI、媒体格式和特定​​于应用程序的协调协议(protocol)定义。与 WSDL 不同,它具有高度动态性。

SOAP doesn't return human readable result, whilst REST result is readable with is just plain XML or JSON

这不是真的。纯 XML 或 JSON 根本不是 RESTful。它们都没有定义任何违反 REST 的控件(即链接和链接关系、方法信息、编码信息等...),因为消息必须是自包含的并协调代理/客户端和服务之间的交互。

通过链接+语义链接关系,客户端应该能够确定下一步的交互步骤,并遵循这些链接并继续与服务进行通信。

消息不必是人类可读的,可以使用神秘的格式并构建完全有效的 REST 应用程序。消息是否可读并不重要。

因此,纯 XML(application/xml) 或 JSON(application/json) 不足以构建 REST 应用程序。使用这些通用媒体类型的子集总是合理的,它们具有很强的语义意义并提供足够的控制信息(链接等...)来协调客户端和服务器之间的交互。

REST is over only HTTP

事实并非如此,HTTP 使用最广泛,当我们谈论 REST Web 服务时,我们只是假设 HTTP。 HTTP 定义了接口(interface)及其方法(GET、POST、PUT、DELETE、PATCH 等)以及可统一用于与资源交互的各种 header 。这种一致性也可以通过其他协议(protocol)来实现。

附注REST 的非常简单但非常有趣的解释:http://www.looah.com/source/view/2284

关于web-services - 比较和对比 REST 和 SOAP Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10975863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com