HTTP协议
HTTP在TCP/IP之上进行通信。HTTP客户机使用TCP连接到HTTP服务器。在建立连接之后,客户机可向服务器发送HTTP请求消息:
SOAP HTTP Binding
soap方法指的是遵守SOAP编码规则的HTTP请求/响应。
HTTP+XML=SOAP
SOAP请求可能是HTTP POST或HTTP GET
HTTP Post请求规定至少两个HTTP头:Content-Type和Content-Length。
Content-Type
SOAP的请求和响应的Content-Type头可定义消息的MIME类型,以及用于请求或响应的XML主体的字符编码
Content-Type:MIMEType;charset=character-encoding
POST /item HTTP/1.1 Content-Type: application/soap+xml; charset=utf-8Content-Length
SOAP的
POST /item HTTP/1.1 Content-Type: application/soap+xml; charset=utf-8 Content-Length: 250请求和响应的Content-Length头规定请求或响应的主体的字节数
一个 SOAP 实例
在下面的例子中,一个 GetStockPrice 请求被发送到了服务器。此请求有一个 StockName 参数,而在响应中则会返回一个 Price 参数。此功能的命名空间被定义在此地址中: "http://www.example.org/stock"
SOAP 请求:
POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope>
SOAP 响应:
HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPriceResponse> <m:Price>34.5</m:Price> </m:GetStockPriceResponse> </soap:Body> </soap:Envelope>