初识SOAP协议及webService

在前段时间的工作中,对一些应用程序的接口进行了渗透测试,偶然间接触到了SOAP协议。SOAP到底是什么呢?与我们熟悉的HTTP协议又有什么区别?

webService三要素
SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。具体实现可以搜索 Web Services简单实例 ; SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。

简单对象访问协议 Simple Object Access Protocol(SOAP)
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。

网络服务描述语言(Web Services Description Language,WSDL)
网络服务描述语言(Web Services Description Language,WSDL)是一种基于可扩展标记语言(XML)的语言,它用来描述业务提供的服务,并为个人和其他企业提供一种以电子形式获得这些服务的方法。网络服务描述语言是由微软、IBM和Ariba所倡议的统一描述、发现和集成(UDDI)的基石。UDDI是一种基于XML的世界业务注册表,这样企业就可以在互联网上列出自己的企业名称和服务。网络服务描述语言(WSDL)就是这样用的。

网络服务描述语言(WSDL)是源自微软的简单对象访问协议(SOAP)和IBM的网络访问服务规范语言(NASSL)。作为在UDDI注册中心表达商业服务的方式,网络服务描述语言取代了NASSL和SOAP。

UDDI (“Universal Description, Discovery and Integration”,“通用描述、发现与集成服务)
UDDI 是一个独立于平台的框架,用于通过使用 Internet 来描述服务,发现企业,并对企业服务进行集成。

UDDI 指的是通用描述、发现与集成服务

UDDI 是一种用于存储有关 web services 的信息的目录。

UDDI 是一种由 WSDL 描述的 web services 界面的目录。

UDDI 经由 SOAP 进行通信

UDDI 被构建入了微软的 .NET 平台

SOAP与HTTP区别
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协议规范由4个主要的部分组成。
SOAP(Simple Object AccessProtocol)简单对象访问协议。它是轻型协议,用于分散的、分布式计算环境中交换信息。SOAP有助于以独立于平台的方式访问对象、服务和服务器。它借助于XML,提供了HTTP所需的扩展。

第一部分:SOAP封装(Envelop)定义了一个的框架(描述消息的内容多少、谁发送、谁应当接受、处理,以及如何处理它们)。

第二部分:SOAP编码规则(Encoding Rules)定义了可选数据编码规则,用于表示应用程序定义的数据类型和直接图表,以及一个用于序列化非语法数据模型统一标准。

第三部分:SOAP RPC表示(RPC Representation)定义一个远程调用风格(请求/响应)信息交换的模式。

第四部分:SOAP绑定(Binding)定义了SOAP和HTTP之间的绑定和使用底层协议的交换。

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

soap 的 可以传递结构化的 数据,http只能传输纯文本数据;

SOAP:简单对象访问协议 http是标准超文本传输协议

SOAP相对http(post/get)由于要进行xml解析,速度可能会有所降低。

发布了7 篇原创文章 · 获赞 3 · 访问量 214

猜你喜欢

转载自blog.csdn.net/k851819815/article/details/104428013