Copyright © @@ W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use, and software licensing rules apply.
This document is an editors' copy that has no official standing.
1. SOAP HTTP Binding
1.1 Introduction
1.1.1 Optionality
1.1.2 Use of HTTP
1.1.3 HTTP Interoperability
1.1.4 HTTP Media-Type
1.2 Binding Name
2. Placeholder
2.1 IETF Draft
2.2 SOAP Media Type
2.3 SOAP Response MEP
2.4 Requet-Response MEP
2.5 SOAP Feature
2.6 SOAP Part1
2.7 RFC2616
The SOAP HTTP Binding provides a binding of SOAP to HTTP. The binding conforms to the SOAP Protocol Binding Framework (see [SOAP-PART1]SOAP Protocol Binding Framework). It uses abstract binding properties as a descriptive tool for defining the functionality of certain features.
The SOAP Protocol Binding Framework (see [SOAP-PART1]SOAP Protocol Binding Framework), the Message Exchange Pattern Specifications (see [SOAP-PART1]SOAP Message Exchange Patterns) and Feature Specifications (see 2.5 SOAP Feature) each describe the properties they expect to be present in a message exchange context when control of that context passes between a local SOAP node and a binding instance.
Properties are named with XML qualified names. Property values are determined by the Schema type of the property, as defined in the specification which introduces the property.
The SOAP HTTP Binding is optional and SOAP nodes are NOT required to implement it. A SOAP node that correctly and completely implements the SOAP HTTP Binding may to be said to "conform to the SOAP 1.2 HTTP Binding."
The SOAP version 1.2 specification does not preclude development of other bindings to HTTP or bindings to other protocols, but communication with nodes using such other bindings is not a goal. Note that other bindings of SOAP to HTTP MAY be written to provide support for SOAP Message exchange patterns other than 2.4 Requet-Response MEP or the 2.3 SOAP Response MEP. Such alternate bindings MAY therefore make use of HTTP features and status codes not required for this binding. For example, another binding might provide for a 202 or 204 HTTP response status to be returned in response to an HTTP POST or PUT (e.g. a one-way "push" MEP with confirmation).
This binding of SOAP to HTTP is intended to make appropriate use of HTTP as an application protocol. For example, successful responses are sent with status code 200, and failures are indicated as 4XX or 5XX. This binding is not intended to fully exploit the features of HTTP, but rather to use HTTP specifically for the purpose of communicating with other SOAP nodes implementing the same binding. Therefore, this HTTP binding for SOAP does not specify the use and/or meaning of all possible HTTP methods, header fields and status responses. It specifies only those which are pertinent to the 2.4 Requet-Response MEP or the 2.3 SOAP Response MEP, or which are likely to be introduced by HTTP mechanisms (such as proxies) acting between the SOAP nodes.
Certain optional features provided by this binding depend on capabilities provided by HTTP/1.1, for example content negotiation. Implementations SHOULD thus use HTTP/1.1 [RFC2616] (or later compatible versions that share the same major version number). Implementations MAY also be deployed using HTTP/1.0, although in this case certain optional binding features may not be provided.
Note:
SOAP HTTP Binding implementations need to account for the fact that HTTP/1.0 intermediaries
(which may or may not also be SOAP intermediaries)
may alter the representation of SOAP messages, even in situations where both the initial SOAP sender and ultimate SOAP receiver use HTTP/1.1.
Particularly when used with the 2.3 SOAP Response MEP, the HTTP messages
produced by this binding are likely to be
indistinguishable from those produced by non-SOAP implementations
performing similar operations.
Accordingly, some degree of interoperation can be made possible between SOAP nodes and other HTTP
implementations when using this binding.
For example, a conventional Web server (i.e. one not
written specifically to conform to this specification) might be used to respond
to SOAP-initiated HTTP GET's with representations of
Content-Type
"application/soap+xml".
Such interoperation is not a normative feature of this specification.
Conforming implementations of this binding:
MUST be capable of sending and receiving messages serialized using media type "application/soap+xml" whose proper use and parameters are described in
.
MAY send requests and responses using other media types providing that such media types provide for at least the transfer of SOAP XML Infoset.
MAY, when sending requests, provide an HTTP Accept header field. This header
field
:
SHOULD indicate an ability to accept at minimum "application/soap+xml".
MAY additionally indicate willingness to accept other media types that satisfy 2 above.