Binding Namespace:
http://schemas.xmlsoap.org/soap/alternativeHTTP
HTTP GET
SOAP Envelope is returned as the result of an HTTP GET request. Parameters are encoded within the URI
Request
GET /StockQuoteService?symbol=IBM HTTP/1.1
Host: www.ibm.com
Accept: application/soap+xml
Accept-Charset: "utf-8"
Response
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: nnnn
<soap:Envelope>
<soap:Header />
<soap:Body />
</soap:Envelope>
This is really no different from using HTTP GET to return HTML pages or other types of content. The parameters for the request are contained within the Request-URI, the response is a SOAP Envelope.
HTTP POST
SOAP Envelope is posted to the service. Posting indicates that the data contained within the SOAP Envelope payload must become a part of the data managed by the service. This method must be rejected if POSTing does not make sense.
Request
POST /AddressBookService HTTP/1.1
Host: www.ibm.com
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: nnnn
<soap:Envelope>
<soap:Body>
<Listing>
<Name>James Snell</Name>
<Address>
<StreetNum />
<StreetName />
<City />
<State />
<Zip />
</Address>
</Listing>
</soap:Body>
</soap:Envelope>
Response
HTTP/1.1 204 No Content
The data contained within the SOAP payload is to be posted to the data managed by the AddressBookService.
HTTP OPTIONS
Can be used to query the WSDL description of a Service.
Request
OPTIONS /DataService HTTP/1.1
Host: www.ibm.com
Accept: text/xml
Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
<wsdl:description>...</wsdl:description>
HTTP INVOKE
A new HTTP method used to indicate an operation to be invoked against a Service. This replaces the use of POST in the official HTTP binding.
Request
INVOKE /StockQuoteService HTTP/1.1
Host: www.ibm.com
Accept: application/soap+xml
Accept-Charset: utf-8
Content-Type: application/soap+xml
Content-Length: nnnn
<soap:Envelope>
<soap:Body>
<abc:GetStockQuote>
<abc:symbol>IBM</abc:symbol>
</abc:GetStockQuote>
</soap:Body>
</soap:Envelope>
Response
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: nnnn
<soap:Envelope>
<soap:Body>
<abc:GetStockQuoteResponse>
<abc:value>85.00</abc:value>
</abc:GetStockQuoteResponse>
</soap:Body>
</soap:Envelope>
Request 2
INVOKE /DataService HTTP/1.1
Host: www.ibm.com
Accept: *;q=0
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: nnnn
<soap:Envelope>
<soap:Body>
<cds:INSERT>
<abc:SomeDataToInsert />
</cds:INSERT>
</soap:Body>
</soap:Envelope>
Response 2
HTTP/1.1 204 No Content
In this alternative binding, an HTTP request that contains a SOAP envelope does not require an HTTP response that contains a SOAP envelope. The envelope can contain any type of message of any content type.
Request 3
INVOKE /StockQuoteService HTTP/1.1
Host: www.ibm.com
Accept: text/plain
Content-Type: application/soap+xml; charset="utf-8"
Content-Length: nnnn
<soap:Envelope>
<soap:Body>
<abc:GetQuote>
<abc:symbol>IBM</abc:symbol>
</abc:GetQuote>
</soap:Body>
</soap:Envelope>
Response 3
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 5
85.00
HTTP PUT
Can be used to deploy new services
Request
PUT /DataService HTTP/1.1
Host: www.ibm.com
Content-Type: application/compress
Content-Length: nnnn
{binary content that contains the service being deployed}
Response
HTTP/1.1 204 No Content
HTTP DELETE
Can be used to undeploy services
Request
DELETE /DataService HTTP/1.1
Host: www.ibm.com
Response
HTTP/1.1 204 No Content