以下是一条演示SOAP请求消息:
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Header>
<t:SessionOrder
xmlns:t="http://example.com"
xsi:type="xsd:int" mustUnderstand="1">
5
</t:SessionOrder>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetStockQuote
xmlns="http://someexample.com">
<Price>MSFT</Price>
</GetStockQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我们可以看到,这个SOAP消息的编码方式就像它是一个网页一样。为什么我们必须使用HTTP协议?SOAP消息只是一些XML,为什么我们不使用XML作为信息交换协议,去掉HTTP头(这样就别管HTTP了)。
非常感谢。
更新-1
HTTP不是传输层协议。它只是一个应用层协议。这与运输无关。实际上,我的问题是,将HTTP内容添加到SOAP消息的动机是什么?
发布于 2010-12-28 00:59:50
SOAP可以通过不同的传输方式发送。HTTP只是其中之一。
例如: SMTP、TCP/IP
发布于 2010-12-28 01:11:33
使用HTTP的动机是为了穿越防火墙。您可以看到,大多数网络IT人员不允许任何端口打开,但出于某种原因,他们总是允许端口80打开网页。由于web服务器经过多年的测试,因此保护它们变得“更容易”。通过使用HTTP,您就拥有了一套处理通信协议的现有工具。
发布于 2010-12-28 00:58:46
你也可以使用TCP,它以前被命名为.NET远程处理,现在它是WCF的一部分。
https://stackoverflow.com/questions/4540301
复制相似问题