【问题标题】:Criteria to select b/w soap and restful ws and why rest is cacheable?选择 b/w soap 和 restful ws 的标准以及为什么 rest 是可缓存的?
【发布时间】:2014-07-21 12:06:45
【问题描述】:

我已经阅读了很多关于黑白肥皂和宁静网络服务的区别。我有一些具体的疑问,我没有得到答案。他们在这里:-

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

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

REST 自然适合 Web/Cloud API,而 SOAP 适合 分布式计算场景。

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

什么有利于 SOAP:-

同样的答案也说SOAP caters for stateful operations。据我了解,这不是真的。如果您需要维护您需要通过代码维护的状态,例如在与它们相关的请求/响应中发送一些唯一 ID,不是吗? (Q2) 如果那样的话,在 RESTful Web 服务中也可以做到。

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

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

注意:- 我已将 Q 用于问题(Q1 是 Question1)

【问题讨论】:

    标签: java web-services rest soap


    【解决方案1】:

    有 3 个理由更喜欢 REST 而不是 SOAP

    1. 资源具有标识它们的 URL。如果你想与朋友分享一些 API 操作的结果,那么你不必口头指示他们调用哪个 API 方法和传递哪些参数。相反,您可以与他分享 URL。 (仅用于安全操作)。一个很好的例子是内置闪存的餐厅网站。如果您只是想与朋友分享餐厅的菜单,那可不是件容易的事。您只能在 Flash 页面加载时告诉他要按哪些按钮。

    2. 借助 REST,您可以利用 Internet 上现有的 HTTP 基础架构来完成大量工作,例如缓存、资源冲突管理等。您不必重新发明轮子。

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

    【讨论】:

    • rest 如何帮助管理缓存/资源冲突而soap 没有?
    • 您可以使用“Cache-Control”标头。 Web 浏览器等客户端知道如何处理它。对于资源管理,您可以读取大多数客户端提供的“If-Modified-Since”标头的值,如果资源状态没有变化,则返回“304 Not modified”响应。至于冲突管理本身,REST 不会帮助您解决这个问题,但肯定会为您提供一个框架来处理它。请参阅“Etag / If-None-Match”标头和“Last-Modified/If-Unmodified-Since”标头。 w3.org/Protocols/rfc2616/rfc2616-sec14.html
    【解决方案2】:

    REST 可以缓存 GET 请求。对于 SOAP,当使用 HTTP 作为传输机制时,通过不可缓存的 HTTP POST 请求发送。

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多