背景
1、SOAP:
什么是SOAP
SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。 SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。 这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。
SOAP 1.2 规范中包含对 SOAP 1.1 的一些更改。本文着重于 SOAP 的当前版本之间的重要差别。
XML 信息集提供使用 XSD 模式描述 XML 文档的方法。然而,信息集并不一定使用 SOAP 1.1 所基于的 XML 1.0 序列化来序列化该文档。这种描述 XML 文档的新方法有助于显示其他序列化格式,例如二进制协议格式。可以使用二进制协议来将消息压缩成某一可能不需要某些详细标记信息的压缩格式。
在 SOAP 1.2 中,可以使用绑定至底层协议的规范确定在底层协议数据单元中使用的 XML 序列化。[SOAP 1.2 - Part 2] 中指定的 HTTP 绑定使用 XML 1.0 作为 SOAP 消息信息集的序列化。
2、SOAP1.2的改进:
SOAP 1.2 对语法进行了许多更改,并且提供了 SOAP 1.1 中所描述的语义的附加的、已明确的语义。“SOAP 1.2 入门”文档列示并描述了这些语法更改。
看下SOAP的request的格式:
SOAP 1.1 request:
POST /WSShakespeare.asmx HTTP/1.1 Host: www.xmlme.com Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://xmlme.com/WebServices/GetSpeech" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetSpeech xmlns="http://xmlme.com/WebServices"> <Request>string</Request> </GetSpeech> </soap:Body> </soap:Envelope>
POST /WSShakespeare.asmx HTTP/1.1 Host: www.xmlme.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <GetSpeech xmlns="http://xmlme.com/WebServices"> <Request>string</Request> </GetSpeech> </soap12:Body> </soap12:Envelope>
格式的不同:
参考:
http://stackoverflow.com/questions/8588309/what-is-the-difference-between-soap-1-1-soap-1-2-http-get-http-post-methods
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/
http://www.w3.org/TR/soap/
http://www-01.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rovr_specs.html%23rovr_specs__webservices?cp=SSAW57_7.0.0%2F2-0-0-2&lang=zh