smw*_*dia 20 xml soap network-programming protocols webservice-client
下面是一个演示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>
Run Code Online (Sandbox Code Playgroud)
我们可以看到,这个SOAP消息被编码为好像它是一个网页.为什么我们必须使用HTTP协议?SOAP消息只是一些XML,为什么我们不只是使用XML作为信息交换协议并摆脱HTTP头(因此只留下HTTP).
非常感谢.
HTTP不是传输级协议.它只是一个应用程序级协议.它与运输无关.实际上,我的问题是将HTTP内容添加到SOAP消息的动机是什么?
Cra*_*lus 48
SOAP是一种消息传递协议,简而言之,它只是另一种XML语言.
其目的是通过网络进行数据交换.它的关注点是这些数据的封装以及发送和接收它们的规则.
HTTP是一种应用程序协议,SOAP消息作为HTTP有效负载放置.
虽然存在HTTP的开销,但它的优势在于它是一种对防火墙开放的协议,易于理解并得到广泛支持.因此,可以通过已经就地的技术访问和公开Web服务.
SOAP消息通常通过HTTP交换.虽然可以使用其他(应用程序)协议,例如SMTP或FTP,但非HTTP绑定不是由SOAP规范指定的,并且WS-BP(互操作性规范)不支持.
您可以通过原始TCP交换SOAP消息,但是您将拥有不可互操作的Web服务(不符合WS-BP).
现在争论的焦点是为什么要有SOAP开销而不是通过HTTP发送数据(RESTful WS).
我将尝试更详细地解决OP中的问题,询问为什么使用HTTP for SOAP:
首先,SOAP定义了一种数据封装格式,就是这样.
现在,网络中的大部分流量都是通过HTTP进行的.HTTP是文学的,并且由完善的服务器和客户端(即浏览器)基础设施提供支持.此外,它是一个非常好理解的协议.
创建SOAP的人想要使用这个现成的基础架构
通过HTTP进行隧道传输会有助于它的快速采用.由于HTTP的基础设施已经就位,因此公司不必为另一种实施花费额外的资金.相反,他们可以使用已部署的技术公开和访问Web服务.
特别是在Java中,Web服务可以作为servlet端点或EJB端点进行部署.因此,所有底层网络套接字,线程,流,HTTP事务等都由容器处理,开发人员只关注XML有效负载.
因此,公司在端口80中运行Tomcat或JBoss,并且也部署和访问Web服务.不需要在传输层进行编程,而强大的容器可以处理其他所有内容.
最后,防火墙配置为不限制HTTP流量这一事实是偏好HTTP的第三个原因.
由于通常允许HTTP流量,因此客户端/服务器的通信更加容易,并且Web服务可以在没有网络安全阻止程序问题的情况下运行,这是HTTP隧道的结果.
SOAP是XML =纯文本,因此防火墙可以检查HTTP正文的内容并相应地阻塞.但在这种情况下,它们也可以被强化以拒绝或接受SOAP,具体取决于内容.这个似乎麻烦你的部分与Web服务或SOAP无关,也许你应该开始一个关于防火墙如何工作的新线程.
话虽如此,HTTP流量不受限制的事实通常会导致安全问题,因为防火墙基本上被旁路,这就是应用程序网关进入的原因.
但这与此帖无关.
所以总结一下使用HTTP的原因:
Emi*_*röm 23
SOAP可以通过不同的传输方式发送.HTTP只是其中之一.
使用HTTP的动机是通过防火墙.您看到大多数网络IT人员不允许任何端口打开,但由于某种原因,他们总是允许端口80为网页打开.由于Web服务器多年来经过测试,因此"更容易"保护它们.通过使用HTTP,您可以使用一组现有的工具来处理通信协议.
| 归档时间: |
|
| 查看次数: |
35633 次 |
| 最近记录: |