soap包含了哪几个部分(soap哪个部分最重要)
web service 协议
没写过web service的东西,是不是提供一种以XML为传输介质的服务?
下面是网上摘抄的
--------------------------------
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上进行通信交互。
Web Service, SOAP和WSDL的关系
最近项目做的东西比较多,一个不做Web的人也要开始看各种Web相关的东东了,hohoho...这几个概念最近一直在用,记录一下。总结和分析了各种的材料来源有这里的园子,WIKIPEDIA,百度百科,ESRI的文档库,还有身边有经验的同事。有些来自WIKI或者文档库的文章就不翻译了,原文表达的已经很到位了。
Web Service
Web services provide the ability for applications to communicate using messaging over many different protocols. Because web services provide a means to communicate between applications that are written both in the same programming language as well as in different programming languages, a language neutral means of communication was needed. XML is the format used to hold the information carried between the applications. The XML message is carried using SOAP (Simple Object Access Protocol). SOAP defines the headers and the valid means for passing messages. That passing of messages usually takes place over HTTP but it can actually be over any well know protocol, such as SMTP, FTP, or DCOM. SOAP takes the xml message and wraps it so that it can be routed to the receiving application and appropriaptely processed.
SOAP
简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
WIKIPEDIA : SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks. It relies on XML for its message format, and usually relies on other Application Layer protocols, most notably Hypertext Transfer Protocol (HTTP) and Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission.
简单对象访问协议(SOAP)是W3C组织的一个Note, 它描述了一种在分散的或分布式的环境中如何交换信息的轻量级协议。SOAP是一个基于XML的协议,它包括三个部分:SOAP封装(Envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(Encoding Rules),用于表示应用程序需要使用的数据类型的实例;SOAP RPC表示(RPC Representation),表示远程过程调用和应答的协定;SOAP可以和多种传输协议绑定(Binding),使用底层协议交换信息。
SOAP 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求 / 应答的模式。所有的 SOAP 消息都使用 XML 编码。一条 SOAP 消息就是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。
SOAP在HTTP协议的基础上时,把编写成XML的REQUEST参数, 放在HTTP BODY上提交给WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端, 为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。
SOAP也可以绑定到TCP和UDP协议上。
WSDL
WSDL describes what a web service does, what methods it contains, what parameters and types it knows how to use, and which ports it is using for communication. The WSDL defines the valid contents of the XML messages to be passed over SOAP. The WSDL acts as a specification, like IDL, to describe the interfaces and parameters on a web service. The methods available are usually grouped together in a "port", which can be thought of as a view to web services where different operations are exposed. A WSDL can contain one or more ports.
关系总结
总之SOAP是一个结构化数据交换的一个协议规范,用于WebService。SOAP基于XML,由于HTTP协议的应用广泛支持(协议支持和80端口可达),多数SOAP应用是基于HTTP的。
SOAP是消息栈中位于HTTP协议之上的一层,Service调用达服务器后,TCP/IP层面,HTTP层面,SOAP协议层面依次逐级获取各自的Payload,程序结合WSDL描述的WebService结构信息,最终生成/得到相应的对象,发起调用。
SOAP 的工作原理?
SOAP(简单对象访问协议):SOAP是使用XML通过Internet发送信息和访问动态Web服务的友好界面。其主要作用在于确保信息通过互联网在业务应用之间传输的可靠性。作为一种用在分布式环境中交换结构化数据的协议,它包括三个部分:信封、报头(可选)和协议消息体。信封标记SOAP消息的开始与结束。它还可以规定在网络上数据的编码规则。SOAP报头可以包含发送给一个地址或多个地址的邮件、一个支付代码或有关RPC类型互动的信息。一个信封中可以有多个报头或完全没有报头。SOAP消息体传送自描述结构或RPC类型接口格式的数据。
什么是SOAP?
SOAP(简单对象访问协议)一般指简单对象访问协议(Simple Object Access Protocol)。
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP历史:
SOAP是“Simple Object Access Protocol”的缩写。
最新版本SOAP 1.2版在2003年6月24日成为W3C的推荐版本。
SOAP由Dave Winer, Don Box,Bob Atkinson, Mohsen Al-Ghosein于1998年设计,当时只作为一种对象访问协议。SOAP规范由 万维网联盟的 XML工作组维护。
http restful 和 soap
参考文章:
all first_rank_v2~rank_v25-3-62217243.nonecaseutm_term=java给客户端提供接口
http是标准超文本传输协议。使用对参数进行编码并将参数作为键值对传递,还使用关联的请求语义。每个协议都包含一系列HTTP请求标头及其他一些信息,定义客户端向服务器请求哪些内容,服务器用一系列HTTP响应标头和所请求的数据进行响应。HTTP-GET 使用 MIME 类型application/x-www-form-urlencoded(将追加到处理请求的服务器的 URL 中)以 URL 编码文本的形式传递其参数。 URL 编码是一种字符编码形式,可确保传递的参数中包含一致性文本,例如将空格编码为 %20,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISOLatin-1)值。 追加的参数也称为查询字符串;HTTP-POST参数也是 URL 编码的,但是,键/值对是在实际的 HTTP 请求消息内部传递的,而不是作为 URL 的一部分进行传递。
SOAP(Simple Object AccessProtocol)简单对象访问协议。它是轻型协议,用于分散的、分布式计算环境中交换信息。SOAP有助于以独立于平台的方式访问对象、服务和服务器。它借助于XML,提供了HTTP所需的扩展。
SOAP协议规范由4个主要的部分组成。
第一部分:SOAP封装(Envelop)定义了一个的框架(描述消息的内容多少、谁发送、谁应当接受、处理,以及如何处理它们)。
第二部分:SOAP编码规则(Encoding Rules)定义了可选数据编码规则,用于表示应用程序定义的数据类型和直接图表,以及一个用于序列化非语法数据模型统一标准。
第三部分:SOAP RPC表示(RPC Representation)定义一个远程调用风格(请求/响应)信息交换的模式。
第四部分:SOAP绑定(Binding)定义了SOAP和HTTP之间的绑定和使用底层协议的交换。
SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP协议可以简单地理解为:SOAP=RPC+HTTP+XML,即采用HTTP作为通信协议,RPC(Remote Procedure Call Protocol 远程过程调用协议)作为一致性的调用途径,XML作为数据传送的格式,从而允许服务提供者和服务客户经过防火墙在Internet上进行通信交互。
SOAP与HTTP的区别
都是底层的通信协议,请求包的格式不同,soap包是XML格式,http纯文本格式
soap 的 可以传递结构化的 数据,http只能传输纯文本数据;
SOAP:简单对象访问协议 http是标准超文本传输协议
SOAP相对http(post/get)由于要进行xml解析,速度可能会有所降低。