Web services 为什么SOAP比REST需要更多的带宽和资源?

Web services 为什么SOAP比REST需要更多的带宽和资源?,web-services,rest,soap,Web Services,Rest,Soap,我在RESTfulwebservices上读了很多东西,我知道还有一个协议叫做SOAP,而REST可以使用不同的协议和SOAP。当我搜索它们之间的差异时,我知道SOAP比REST使用了更多的带宽和资源。我想知道为什么it需要更多的资源和带宽。非常感谢您的回答。SOAP需要使用XML信息集传递有关对象及其状态的信息。通常,这些数据模型被序列化为文本XML 与典型的REST实现相比,这会消耗更多的带宽 SOAP对每条消息都有额外的头,而RESTFul服务利用HTTP头 因此,避免在带宽非常有限的情况

我在
RESTful
webservices上读了很多东西,我知道还有一个协议叫做
SOAP
,而
REST
可以使用不同的协议和
SOAP
。当我搜索它们之间的差异时,我知道
SOAP
REST
使用了更多的带宽和资源。我想知道为什么it需要更多的资源和带宽。非常感谢您的回答。

SOAP需要使用XML信息集传递有关对象及其状态的信息。通常,这些数据模型被序列化为文本XML

与典型的REST实现相比,这会消耗更多的带宽

SOAP对每条消息都有额外的头,而RESTFul服务利用HTTP头


因此,避免在带宽非常有限的情况下使用SOAP。

如果
REST
发送
XML
格式,那么带宽要求是否仍然相同,或者是否会改变,与
SOAP
相同@达珊·帕特诺!不是简单的消息交换需要更多的带宽,而是整个服务查找、存根生成和调用(全部)需要更多的开销。REST构建在HTTP语义之上,并依赖于标准化的DoucMont格式,这两种格式通常已经在大多数web框架/应用程序中可用。不过,RESTful文档可能比SOAP消息更健谈,因为真正的RESTful响应应该包含支持HATEAOS、缓存方向等的链接。您还可以通过RESTful客户端交换XML—因此,简单的XML处理是一个错误的参数!SOAP在流方面有其局限性,因为它旨在通过XML负载进行简单的消息交换。当然,数据可以进行base64编码,然后在SOAP消息体中发送,尽管有更方便的方法来实现流式传输。SOAP不需要存根类,尽管它们非常常见,因为在没有存根的情况下徒步实现SOAP需要编写相当多的代码。此外,SOAP消息通常(如果不是总是)根据模式进行验证——这就是为什么SOAP最终会成为RESTful应用程序中的重炮。如果REST发送XML格式,那么带宽需求是否仍然相同,或者是否会改变,与SOAP相同?