Behavior of Requesting node on a 3XX response in the SOAP HTTP Binding

Per my AI here is the email that I had promised to send regarding the 
behavior of a requesting node on a 3XX redirection status code to a POST 
method.

Table 17 in [1] lists the following as the 'Significance/Action' on 
receiving a 3XX status code --

"The requested resource has moved and the HTTP request SHOULD be retried 
using the URI carried in the associated Location header field as the new 
value for the http://www.w3.org/2003/05/soap/mep/ImmediateDestination 
property."

and the next state defined is: "Init"

It is unclear what this means for the 
"http://www.w3.org/2003/05/soap/mep/request-response/" MEP. There are 
several 3XX status codes which require different behavior (per HTTP). 
Specifically, 303 requires the requester to use the GET method on the 
resource, whereas typically for a 307 the requester will re-POST the 
same message at the new URI available in the Location HTTP header.

If the requester uses a GET method on a 303, is the MEP still the 
request-response MEP? Table 16, (which describes the fields in the Init 
state), specifies that the HTTP method is set as per the 
"http://www.w3.org/2003/05/soap/features/web-method/Method" which is 
unchanged after the 3XX response (the only thing that changes is the 
'ImmediateDestination'). OR if a requester uses the GET method on 
receiving a 303 is it conformant to the SOAP HTTP binding as defined by 
SOAP 1.2, part 2: Adjunct. There seems to be conflict in trying to 
remain conformant to the HTTP spec and the SOAP HTTP binding when a 303 
is received.

It seems to me that an errata that clarifies that a 3XX may change the 
value of "http://www.w3.org/2003/05/soap/features/web-method/Method" 
would allow implementations to be conformant to the HTTP spec and the 
SOAP HTTP binding.

-Anish
--

[1] 
http://www.w3.org/TR/2003/REC-soap12-part2-20030624/#http-reqbindwaitstate

Received on Wednesday, 3 August 2005 07:49:38 UTC