Doodle of an HTTP Binding
1 Supported Transport Message Exchange Patterns
This binding supports the following transport message exchange patterns
1.1 One way Correlated
Properties Referenced:
This MEP makes use of the HTTP POST method to exchange SOAP messages and
attachments between SOAP processors (Nodes?) resident layered above HTTP client
and HTTP server entities.
1.1.1 HTTP Client to HTTP Server Operation
At the HTTP Client:
An HTTP POST request is formed as follows:
POST <requestUri> HTTP/1.1
Host: <requestHost>
Content-Type: text/soap+xml (or whatever)
<entityBody>
<requestUri> is derived from the .../msg-prop/message/immediateDestination
property.
<requestHost> is the TCP/IP hostname associated with the <requestUri>
<entityBody> is generated as follows.
- The attachments (if any) held in the value of the ...msg-prop/message/attachments
property are transformed into an XML Element Information Item with a
localname of "Attachments" and a namespace name of "http://www.w3.org/.../soap/extensions/xml-attachments"
according to the conventions defined in [Ref to xml-attachments
extension].
- An XML Infoset is formed by cloning the Message XML Infoset carried in the
value of the .../msg-prop/message/message property and appending any
Attachments Element Information Item that arose in the first step as the
last element (document order) contained within the Body Element Information
item of the cloned XML Infoset.
[There is an issue about the representation of the abstract link structure
between message and attachments and between attachments, but I'm ducking my
head on that]
- The resulting XML Infoset is serialised to become the value carried in
<entityBody>
- The value of the .../msg-props/message/localMsgID is retained for use in
processing any resulting HTTP POST response
In the event of a communication failure of the underlying HTTP/TCP
infrastructure.... [need some property based model for reporting failure -
generic failure 'code' plus binding specifics for this that really want to
know].
In the event that HTTP Basic Authentication is required, the values of the
Realm, UserRef and PasswordRef MAY be used to attempt to authenticate the HTTP
client.
In the event that [other authentication schemes....]
If an HTTP POST response with a status code of 200 is received as follows:
HTTP/1.1 200 OK
Content-Type: text/soap+xml (or whatever)
<entityBody>
A new message property set is formed from the received <entityBody> as
follows:
- .../msg-props/message/attachments is set to NULL
- If the XML Infoset carried in the <entityBody> contains an XML
Element Information Item with a local name of "Attachments" and a
namespace name of "http://www.w3.org/.../soap/extensions/xml-attachments"
then the value of the .../msg-prop/message/attachments property is generated
from the content of the Attachments Element Information Item according to
the conventions defined in [Ref to xml-attachments extension].
- The .../msg-props/message/message property is cloned from the XML Infoset
carried in the received <entityBody> having had any included
Attachments Element Information Item first removed.
- The .../msg-props/messsage/causalMsgId property is set from the value of
the .../msg-props/message/localMsgID retained in step 4 above.
At the HTTP Server
...
1.1.2 HTTP Server to HTTP Client Operation
At the HTTP Client
At the HTTP Server
1.2 Request-Response
2 HTTP Intermediary Issues