什么是" SOAP需要比REST更多的带宽和资源"?

时间:2018-01-18 10:34:27

标签: rest web-services soap

什么是" SOAP需要比REST更多的带宽和资源"和#34; REST比SOAP"需要更少的带宽和资源。什么是带宽和资源作者也指的是什么?

2 个答案:

答案 0 :(得分:1)

REST不是基于JSON的数据交换,而是一种将客户端与服务器分离的技术。通过利用传输协议的明确定义的操作来实现解耦,该传输协议形成用于消息交换的公共接口,并且依赖于描述交换的数据的语法和语义的明确定义的中间媒体类型。虽然没有迹象表明通过REST模型之后的应用程序交换的数据需要的带宽(发送更小的有效载荷)比通过SOAP交换的更少。

为什么呢?遵循REST原则的服务器将包含更多选项,客户端可以使用这些选项采取进一步的操作,从而(可能)膨胀实际响应,实际上可能需要比通过SOAP交换的RPC消息更多的带宽。如果您提到的作者的引用,应该特别小心对待。除此之外,如果在XML表示中传输有效负载,则两个appraoches在实际交换的语法上具有相同的开销。当然,SOAP可能会引入SOAP信封,但主要用于指定某些必需的功能,如事务支持等。

作者可能正在建立他关于很多人认为REST的说法,但实际上只是通过HTTP和JSON有效负载进行RPC。大量所谓的REST API只是基于JSON的Web API,或多或少地遵循HTTP操作语义,但通过以application/json格式向客户端发送专有JSON有效负载来指示客户端如何使用其服务。由于这种媒体类型非常通用,并且在确定有效载荷的语义时也不支持客户端,因此除非知识已经编码到客户端并因此将其紧密耦合到客户端,否则客户端无法真正理解这种响应格式。如果服务器决定返回稍微不同的表示(由于更新等),API本身可能会中断。这种表示通常是针对API定制的,并且不包含关于进一步操作的额外URI或提示,因为知识已经构建到客户端中(类似于SOAP RPC)。

我希望您可以看到,如果将REST(其真正含义)与SOAP消息有效负载大小进行比较,则应谨慎对待此类语句。一个服务器,为客户提供每个可能的选项,以便它可以决定它可以执行的操作可能相当繁琐。

答案 1 :(得分:0)

SOAP需要更多的网络带宽和资源。 其中一个最重要的原因是开销较高(SOAP:XML序列化)