gpt4 book ai didi

performance - 为什么 HTTP/SOAP 被认为是 "thick"

转载 作者:可可西里 更新时间:2023-11-01 15:04:35 26 4
gpt4 key购买 nike

我听说过一些人认为 SOAP/HTTP 网络服务调用栈是“厚”或“重量级”的,但我无法确切地指出原因。由于 SOAP 信封和消息的序列化/反序列化,它会被认为是厚的吗?这真的是一个重量级的操作吗?

或者与固定连接上的原始/二进制数据传输相比,它只是被认为是“厚”的?

还是其他原因?任何人都可以阐明这一点吗?

最佳答案

SOAP 被设计得足够抽象,可以使用除 HTTP 之外的其他传输方式。这意味着,除其他外,它利用 HTTP 的某些方面(主要是 URL 和方法的 RESTful 使用,例如 PUT/customers/1234GET/customers/1234).

出于同样的原因,SOAP 也绕过现有的 TCP/IP 机制 - 与传输无关。同样,这意味着它无法利用传输,例如序列管理、流量控制、服务发现(例如,accept()在众所周知的端口上建立连接意味着服务存在)等

SOAP 将 XML 用于其所有序列化 - 虽然这意味着数据仅通过 XML 解析器就“普遍可读”,但它引入了如此多的样板文件,以至于您确实需要 SOAP 解析器才能有效运行。到那时,您(作为软件消费者)无论如何都失去了 XML 的好处;如果您无论如何都需要 libSOAP 来处理负载,谁会在意负载在网络上的样子。

SOAP 需要 WSDL 来描述接口(interface)。 WSDL 本身不是问题,但它往往被宣传为比实际情况更“动态”。在许多情况下,会创建单个 WSDL,并从中自动生成生产者/消费者代码,并且永远不会更改。总的来说,这需要大量工具,但实际上并没有更好地解决原始问题(如何在不同服务器之间进行通信)。由于大多数 SOAP 服务都在 HTTP 上运行,所以最初的问题已经基本上已经解决了。

关于performance - 为什么 HTTP/SOAP 被认为是 "thick",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/676123/

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