HTTP和SOAP完全就是两个不同的协议

来源:互联网 发布:软妹日系滤镜软件 编辑:程序博客网 时间:2024/06/05 05:24

HTTP和SOAP完全就是两个不同的协议

复制代码
HTTP只负责把数据传送过去,不会管这个数据是XML、HTML、图片、文本文件或者别的什么。而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等,怎么能够混为一谈。                 这样说两种协议:     HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等。。。。         SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责让对方能够看得懂你的信。  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或其他,数据表示也可以是键值对、xml或其他,只不过现在通用的是http+soap,当然其他的也可以,不知道这样理解对不对? SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。
=================================================================================

简单来说: SOAP = HTTP+XML+RPC

对于RPC本身可以走HTTP ,TCP等不同的协议,比如淘宝的Dubbo框架,RPC是可以选择走TCP协议还是走HTTP协议的。
发布于 2016-12-13
SOAP和RPC都是SOA的具体实现方式。SOAP是基于HTTP和XML的实现,因此会更容易做业务隔离,在系统可维护性和可扩展性上优于RPC。而RPC是基于TCP或自定义协议的实现,性能会略好于SOAP,但是异构系统间的耦合度会更高,间接增加系统的故障率和排错难度。
发布于 2015-04-15

RPC是一种进程远程调用的方式,更强调的是异构平台之间进程通信的机制。它可以使用多种协议(包括HTTP以及其他base在TCP的自定义协议)和序列化方式(Json/xml/二进制),组件之间的耦合度比较高。服务管理的机制相对较弱

SOA是一种产品架构的理念,以服务为中心,松耦合,通过定义严谨明确的接口进行通信。有比较完善的服务管理机制。

个人感觉两者并不是一个层面上的架构,可以说RPC是SOA架构的一种实现