当前位置: 代码迷 >> Web Service >> webservice调用方式http和soap的区别,该如何处理
  详细解决方案

webservice调用方式http和soap的区别,该如何处理

热度:445   发布时间:2016-05-02 03:10:04.0
webservice调用方式http和soap的区别
我用VS新建的一个WebService项目,通过HTTP的方式就可以访问了,这种方式与通过SOAP方法有什么不同啊
既然通过HTTP就能访问了,我们何必要通过SOAP访问这么麻烦呢
还有,同样是HTTP请求,服务器端是怎么分辨是普通的页面请求还是Web Service请求呢




------解决方案--------------------
按理说所有对webservice的调用都是变成SoapMessage通过http协议进行request和response.
------解决方案--------------------
SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。RPC的描叙可能不大准确,因为SOAP一开始构思就是要实现平台与环境的无关性和独立性,每一个通过网络的远程调用都可以通过SOAP封装起来,包括DCE(Distributed Computing Environment ) RPC CALLS,COM/DCOM CALLS, CORBA CALLS, JAVA CALLS,etc。

SOAP 使用 HTTP 传送 XML,尽管HTTP 不是有效率的通讯协议,而且 XML 还需要额外的文件解析(parse),两者使得交易的速度大大低于其它方案。但是XML 是一个开放、健全、有语义的讯息机制,而 HTTP 是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛的应用。但是如果效率对你来说很重要,那么你应该多考虑其它的方式,而不要用 SOAP。

为了更好的理解SOAP,HTTP,XML如何工作的,不妨先考虑一下COM/DCOM的运行机制,DCOM处理网络协议的低层次的细节问题,如PROXY/STUB间的通讯,生命周期的管理,对象的标识。在客户端与服务器端进行交互的时候,DCOM采用NDR(Network Data Representation)作为数据表示,它是低层次的与平台无关的数据表现形式。
------解决方案--------------------
 Web service一般就是用SOAP协议通过HTTP来调用它,其实他就是一个WSDL文档,客户都可以阅读WSDL文档来用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。
个人以为就把webservice当成是Http这种请求和响应方式就可以处理大部分问题了。
------解决方案--------------------
webservice 的调用有3种方式
1. httpget 
2. httppost
3. httpsoap

soap 的优点是 可以传递结构化的 数据,而前两种不行。
btw, soap 最终也是使用 HTTP 传送 XML
  相关解决方案