web service 之 SOAP(一)

 

web service 之 SOAP(一)

 

一、SOAP(Simple Object Access Protocol) 简单对象访问协议.

看上篇的web service 技术架构图,SOAP对应于消息层,且在XML之上。

 

1、所谓协议就是个约定,就是大伙定个规矩以什么样的形式交流。

   和"天黄盖地虎,宝塔镇河妖"一个道理。

 

2、SOAP 对应于消息层

   web service 以SOAP作为消息传递协议。

   "SOAP是web service 消息传输协议事实上的标准"--《web 服务与技术》

 

3、SOAP是基于XML的。

   先可以简单的理解为用http传送符合某种特定规则的xml就是SOAP。

 

   

 

为什么是SOAP ?

   SOAP是基于xml的。xml是中立的不是那种语言特有的东西,也不是只属于特定的

   平台。SOAP实现了跨平台的互操作性。

   向对于别的组件技术CORBA、DCOM、RMI , SOAP绝对优点就是不必要求通信连接的

   两端使用同一分布式模型实现。

   一句话SOAP是松耦合的,是平台无关的。

   

 

   

二、说那么多了,SOAP到底长啥样子?

掀起她的盖头来:

先看百度百科 SOAP : 

http://baike.baidu.com/view/1695890.htm?from_id=4684413&type=syn&fromtitle=SOAP&fr=aladdin

 

协议结构

SOAP消息格式:

<SOAP-ENV:Envelope 各种属性>

    <!--百度百科示例-->

 <SOAP:HEADER>

 </SOAP:HEADER>

 <SOAP:Body>

 </SOAP:Body>

</SOAP-ENV:Envelope>

 

 

 

消息基本结构

<?xml version="1.0"?>

<soap:Envelope  xmlns:soap="http://www.w3.org/2001/12/soap-envelope"  

 soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

    <soap:Header>

        <!--百度百科示例-->

    </soap:Header>

    <soap:Body>

          <!--百度百科示例-->

          <soap:Fault>

                <!--百度百科示例-->

          </soap:Fault>

    </soap:Body>

</soap:Envelope>

 

 

 

没有什么神秘嘛,一条SOAP消息就是个xml,这个xml根节点是soap:Envelope

有必须的节点soap:Body,可选的节点有soap:Header、soap:Fault。

采用SOAP 协议交换数据,实际就是相互传送上面格式的xml。

到这里再想想,所谓的跨平台的互操作性就明白了吧。

 

 

 

三、SOAP、XML、HTTP 关系:

    还是先看下web service技术架构图,HTTP 对应于右侧的"传输",而xml 、SOAP在http之上。

web service 的消息是通过HTTP来传送的(不必须是http),并且传送的消息格式是xml的,

是xml的但不能是任意xml格式,这个xml格式必须符合SOAP规范,符合SOAP规范的才能被

进行web service通讯的两端正确解析理解。

 

形象的说http就是运送货物的卡车,SOAP就是货物,这种货物是用xml组装的。

这样说可能不太准确,参考 W3C关于SOAP的一句话:"HTTP + XML = SOAP".

这样说或许更精确些。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值