Web Service的传输协议
1 Web Service的传输协议概述
Web Service的传输协议概述在ASP.NET 中,XML Web Service支持3种协议来与用户交流数据。这3种协议分别是:
1.HTTP-GET
2.HTTP-POST
3.SOAP
在这3种协议中,HTTP(Hypertext Transfer Protocol)已经是众所周知的协议了,它是XML Web Service数据传输的标准,其中包括使用SOAP传输数据。HTTP将SOAP消息压缩,然后以HTTP传输协议的形式进行网络传输。然而在XML Web Service下使用HTTP-GET和HTTP-POST的时候,事实上是指有关单独使用HTTP调用XML Web Service中的方法的能力,而不使用SOAP。
在HTTP中,GET和POST并不是一种协议,它们是可以用来与Web Service交互的几种方法中的其中两种。然而,这二种方法的传送参数和数据的能力使它们变成了一种简单的,非常适合用来调用XML Web Service的工具。
SOAP是XML Web Service最常用到的连接协议。与HTTP相比,SOAP显的更为复杂,但却拥有更强的接受能力。SOAP是一种以XML为基础的协议,它提供一种将数据打包(Packaging)和编码(Encoding)的方法,以用于网络的数据传输。任意一个用户都可以使用SOAP协议与任何一个XML Web Service进行通信,甚至于这个XML Web Service不是建立在.NET 平台上的,比如说Java的,都可以利用SOAP来进行数据传输。因此可见,SOAP也是Language Independent(语言独立性)。
2
HTTP-GET和HTTP-POSTHTTP-GET 和 HTTP-POST 是使用 HTTP(超文本传输协议)谓词以及与之关联的请求语义将参数作为名称/值对编码和传递的标准协议。每个协议都由一系列 HTTP 请求头组成,这些头与一些其他信息一起定义客户端向服务器请求的内容,而在成功时,服务器将用一系列 HTTP 响应头和所请求的数据响应。
HTTP-GET的处理特征如下:
l
将数据添加到URL。
l
利用一个问号(“?”)代表URL地址的结尾与数据的开端。
l
每一个数据的元素以 名称/值的形式出现。
l
利用一个分号(“;”)来区分多个数据元素。
HTTP-POST的处理特征如下:
l
将数据包括在HTTP主体中。
l
同样的,数据的元素以名称/值的形式出现。
l
但是每一个数据元素分别占用主体的一行。
3
SOAP协议SOAP(Simple Object Access Protocol)简单对象访问协议,它是轻型协议,用于分散的、分布式计算环境中交换信息。SOAP有助于以独立于平台的方式访问对象、服务和服务器。它借助于XML,提供了HTTP所需的扩展。
SOAP协议规范由4个主要的部分组成。
第一部分:SOAP封装(Envelop)定义了一个描述消息的内容多少、谁发送、谁应当接受并且处理以及如何处理它们的框架。
第二部分:SOAP编码规则(Encoding Rules)定义了可选数据编码规则,用于表示应用程序定义的数据类型和直接图表,以及一个用于序列化非语法数据模型统一标准。
第三部分:SOAP RPC表示(RPC Representation)定义一个远程调用风格(请求/响应)信息交换的模式。
第四部分:SOAP绑定(Binding)定义了SOAP和HTTP之间的绑定和使用底层协议的交换。
SOAP协议可以简单地理解为:SOAP=RPC+HTTP+XML,即采用HTTP作为通信协议,RPC作为一致性的调用途径,XML作为数据传送的格式,从而允许服务提供者和服务客户经过防火墙在Internet上进行通信交互。