java - 选择黑白 SOAP 和restful ws的标准以及为什么rest是可缓存的?

标签 java web-services rest soap

我读过很多 SOAP 和 Restful 网络服务之间的区别。我有一些具体的疑问,但没有得到答案。它们在这里:-

什么有利于 Restful Web 服务 简而言之,每个人似乎都更喜欢 Restful Web 服务而不是 SOAP 。其背后的主要原因是易于开发和理解。速度也更快,主要是因为像 json 这样的轻量级数据交换格式。另外,Restful Web 服务的性能更好,因为通过网络传输的数据更少(Soap 在 http 请求下涉及额外的 saop 消息层)。到目前为止一切顺利。

已接受答案 how is Restful web services better than SOAP based webservices还说

REST naturally fits for Web/Cloud API's, whilst SOAP fits for distributed computing scenarios.

我不明白Web和分布式计算场景之间有什么区别。 Web也是分布式计算场景的一个例子。不是吗?那么为什么一个更适合 Web,而另一个更适合分布式场景呢? (第一季度)

什么有利于 SOAP :-

同样的答案还表明 SOAP 适合有状态操作。据我了解,事实并非如此。如果您需要维护您需要通过代码维护的状态,例如在与它们相关的请求/响应中发送一些唯一的 ID,不是吗? (Q2)如果是这种情况,也可以在 Restful Web 服务中完成。

有人说 SOAP 在安全性方面更好。我不知道什么安全皂能提供而休息却不能提供? (第三季度)

从某种意义上来说,Soap 可能更好,因为它具有 WSDL(也由工具生成)文档,客户端可以通过该文档生成各自的 stub 。在 Restful Web 服务中,开发人员必须自己创建综合文档,以便客户端了解输入请求参数。正确的 ? (第四季度)

注意:- 我已将 Q 转介给问题(Q1 是问题 1)

最佳答案

选择 REST 而不是 SOAP 有 3 个理由

  1. 资源具有标识它们的 URL。如果您想与 friend 分享某些 API 操作的结果,那么您不必口头指示他们调用哪个 API 方法以及传递哪些参数。相反,您只需与他分享 URL 即可。 (仅用于安全操作)。一个很好的例子是使用 Flash 构建的餐厅网站。如果您只是想与 friend 分享餐厅的菜单,则不太容易做到。您只能告诉他在 Flash 页面加载时按哪些按钮。

  2. 通过 REST,您可以利用互联网上现有的 HTTP 基础设施来完成大量工作,例如缓存、资源冲突管理等。您不必重新发明轮子。

  3. 与#2 相关,许多开发人员已经习惯使用 REST 架构。如果您使用 REST,您将大大缩短新开发人员在学习如何使用您的服务时必须经历的学习曲线。

关于java - 选择黑白 SOAP 和restful ws的标准以及为什么rest是可缓存的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23976470/

相关文章:

java - 如何使用 javascript 从 HTML 调用服务器端 java 方法?

java - 数组列表和平面文件数据库

web-services - Web 应用程序 API 的用例?

php - 如何重置 CURLOPT_CUSTOMREQUEST

java - 错误 : Could not find or load main class org. antlr.Tool

java - 为 Web 服务获取客户端的 IP 地址

.net - 如何将microsoft crm与delphi连接?

javascript - 如何使用 AJAX 将用户点击的元素的 id 传递回 Flask

java - REST API : Multiple versions, 单个应用程序?

java - 向 java 类添加 2 个实现?