CSDN-CSDN社区-.NET技术-Web Services

收藏 webservice调用方式http和soap的区别[问题点数:50,结帖人:baiyicug]

  • baiyicug
  • (龙腾四海)
  • 等 级:
  • 结帖率:
楼主发表于:2009-02-17 14:12:34
我用VS新建的一个WebService项目,通过HTTP的方式就可以访问了,这种方式与通过SOAP方法有什么不同啊
既然通过HTTP就能访问了,我们何必要通过SOAP访问这么麻烦呢
还有,同样是HTTP请求,服务器端是怎么分辨是普通的页面请求还是Web Service请求呢


回复次数:8
#1楼 得分:0回复于:2009-02-17 14:38:05
你的意思是client 调用 web service吗?

不太理解什么是http方式,什么是soap方式。
#2楼 得分:5回复于:2009-02-17 14:39:21
按理说所有对webservice的调用都是变成SoapMessage通过http协议进行request和response.
#3楼 得分:0回复于:2009-02-17 14:51:39
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getSupportCity为例
它里面给的例子的调用方式就是简单的http请求
  <form target="_blank" action='http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity' method="POST">
它并没有发送SoapMessage

我就是不明白,按参考资料应该是发送SoapMessage的,可这里它与普通的页面提交无异,这到底是怎么回事
#4楼 得分:15回复于:2009-02-17 14:52:42
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)作为数据表示,它是低层次的与平台无关的数据表现形式。
#5楼 得分:15回复于:2009-02-17 16:49:37
 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这种请求和响应方式就可以处理大部分问题了。
#6楼 得分:15回复于:2009-02-19 10:59:19
webservice 的调用有3种方式
1. httpget
2. httppost
3. httpsoap

soap 的优点是 可以传递结构化的 数据,而前两种不行。
btw, soap 最终也是使用 HTTP 传送 XML
#7楼 得分:0回复于:2009-02-20 09:54:12
我现在的理解是:
webService协议主要包括两个方面:传输协议和数据表示,关于传输协议可以是http或其他,数据表示也可以是键值对、xml或其他,只不过现在通用的是http+soap,当然其他的也可以,不知道这样理解对不对?
#8楼 得分:0回复于:2009-04-03 17:06:32
看了之后对SOAP,http区别联系有了更加深的一些认识。
相关问题
请问能否从vb调用web service(急) .NET技术/ Web Services - CSDN社区 ...
如何调用webservice? VB / 网络编程- CSDN社区community.csdn.net
关于asp.net Web Services宿主,直接soap访问Web Services? .NET技术 ...
ejb可以实现远程调用吗?怎样实现? 和webservice的区别? Java / J2EE ...
Servlet与WebService关系Java / Web Services / XML - CSDN社区 ...
如何实现动态调用web service .NET技术/ Web Services - CSDN社区 ...