首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么SOAP消息必须通过HTTP发送?

为什么SOAP消息必须通过HTTP发送?
EN

Stack Overflow用户
提问于 2010-12-28 00:55:51
回答 8查看 42.2K关注 0票数 25

以下是一条演示SOAP请求消息:

代码语言:javascript
复制
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消息的动机是什么?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-12-28 00:59:50

SOAP可以通过不同的传输方式发送。HTTP只是其中之一。

例如: SMTP、TCP/IP

票数 27
EN

Stack Overflow用户

发布于 2010-12-28 01:11:33

使用HTTP的动机是为了穿越防火墙。您可以看到,大多数网络IT人员不允许任何端口打开,但出于某种原因,他们总是允许端口80打开网页。由于web服务器经过多年的测试,因此保护它们变得“更容易”。通过使用HTTP,您就拥有了一套处理通信协议的现有工具。

票数 7
EN

Stack Overflow用户

发布于 2010-12-28 00:58:46

你也可以使用TCP,它以前被命名为.NET远程处理,现在它是WCF的一部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4540301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档