Web Services 平台元素SOAP、WSDL 、UDDI

Web Services 拥有三种基本的元素:SOAP、WSDL 以及 UDDI。

什么是 SOAP?

SOAP 是一种使应用程序有能力通过 HTTP 交换信息的基于 XML 的简易协议。或者可以更简单地说:SOAP 是一种用于访问 web service 的协议。

  • SOAP 指简易对象访问协议
  • SOAP 是一种通信协议
  • SOAP 用于应用程序之间的通信
  • SOAP 是一种用于发送消息的格式
  • SOAP 被设计用来通过因特网进行通信
  • SOAP 独立于平台
  • SOAP 独立于语言
  • SOAP 基于 XML
  • SOAP 很简单并可扩展
  • SOAP 允许您绕过防火墙
  • SOAP 将作为 W3C 标准来发展

一个SOAP消息就是一个XML文档,包含下列元素:

  • 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope" //xmlns:soap命名空间
soap:encodingStyle="">
...
Message information goes here
...
</soap:Envelope>

  • 可选的 Header 元素,包含头部信息

<soap:Header>
<m:Trans xmlns:m="http://www.w3schools.com/transaction/"
soap:mustUnderstand="1">134
</m:Trans>
</soap:Header>

  • 必需的 Body 元素,包含所有的调用和响应信息(实际的 SOAP 消息)

<soap:Body>
<m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse>
</soap:Body>

  • 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息

什么是 WSDL?

WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。

WSDL 可描述 web service,连同用于 web service 的消息格式和协议的细节。

  • WSDL 指网络服务描述语言
  • WSDL 使用 XML 编写
  • WSDL 是一种 XML 文档
  • WSDL 用于描述网络服务
  • WSDL 也可用于定位网络服务
  • WSDL 还不是 W3C 标准

什么是UDDI?

UDDI 是一种目录服务,通过它,企业可注册搜索 Web services。

  • UDDI 指通用的描述、发现以及整合(Universal Description, Discovery and Integration)。
  • UDDI 是一种用于存储有关 web services 的信息的目录。
  • UDDI 是一种由 WSDL 描述的网络服务接口目录。
  • UDDI 经由 SOAP 进行通迅。
  • UDDI 被构建于 Microsoft .NET 平台之中。

http和soap的关系

http:是一个客户端和服务器端请求和应答的标准(TCP)。http协议其目的是为了提供一种发布接收htttp页面的方法。

http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

soap 协议:它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。soap在http协议的基础上,一个基于XML的协议。

不同:都是底层的通信协议,请求包的格式不同而已,soap包是XML格式,http纯文本格式。

关系:SOAP是个通信协议, SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数,放在HTTP BODY上提交给WEB SERVICE服务器(SERVLET,ASP什么的) 。处理完成后,结果也写成XML作为RESPONSE送回用户端。为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件。利用WSDL工具可以自动生成WEB SERVICE和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。

原文地址:https://www.cnblogs.com/chrisghb8812/p/5667864.html