是什么
SOAP(原为Simple Object Access Protocol的首字母缩写,即简单对象访问协议)是交换数据的一种协议规范,使用在计算机网络Web服务(web service)中,交换带结构的信息。
目的
SOAP为了简化网页服务器(Web Server)从XML数据库中提取数据时,节省去格式化页面时间,以及不同应用程序之间按照HTTP通信协议,遵从XML格式执行资料互换,使其抽象于语言实现、平台和硬件。
从哪里来的
此标准由IBM、Microsoft、UserLand和DevelopMentor在1998年共同提出,并得到IBM、莲花(Lotus)、康柏(Compaq)等公司的支持,于2000年提交给万维网联盟(World Wide Web Consortium,W3C),目前SOAP 1.1版是业界共同的标准,属于第二代的XML协议(第一代具主要代表性的技术为XML-RPC以及WDDX)。
给个例子
用一个简单的例子来说明SOAP使用过程,一个SOAP消息可以发送到一个具有Web Service功能的Web站点,例如,一个含有房价信息的数据库,消息的参数中标明这是一个查询消息,此站点将返回一个XML格式的信息,其中包含了查询结果(价格,位置,特点,或者其他信息)。由于数据是用一种标准化的可分析的结构来传递的,所以可以直接被第三方站点所利用。
谁应该关注soap
学习web service基础知识或者搭建web service标准化功能的开发者应该多关注,同时也应该多了解web service标准WS标准。
相关定义
- SOAP封装(envelope):定义了一个框架,描述消息中的内容是什么、是谁发送的、谁应当接受并处理它以及如何处理它们;
- SOAP编码规则(encoding rules):定义了一种序列化的机制,用于表示应用程序需要使用的数据类型的实例;
- SOAP RPC表示(RPC representation):定义了一个协定,用于表示远程过程调用和应答;
- SOAP绑定(binding),它定义了SOAP使用哪种协议交换信息。使用HTTP/TCP/UDP协议都可以。
SOAP与HTTP
把SOAP绑定到HTTP的方式,同时利用了SOAP的样式和分散的灵活性特点以及HTTP的丰富特征库的优点。在HTTP上传送SOAP并不意味着SOAP会覆盖现有的HTTP语义,而是HTTP上的SOAP语义会自然地映射到HTTP语义。在使用HTTP作为协议绑定的场合中,RPC请求映射到HTTP请求上,而RPC应答映射到HTTP应答。然而,在RPC上使用SOAP并不仅限于HTTP协议绑定。
传输
SOAP使用因特网应用层协议作为其传输协议。SMTP以及HTTP协议都可以用来传输SOAP消息,但是由于HTTP在如今的因特网结构中工作得很好,特别是在网络防火墙下仍然正常工作,所以被广泛采纳。SOAP亦可以在HTTPS上传输。
消息格式
消息格式采用XML。