- From: Anish Karmarkar <Anish.Karmarkar@oracle.com>
- Date: Tue, 09 Aug 2005 22:16:05 -0700
- To: Yves Lafon <ylafon@w3.org>
- CC: noah_mendelsohn@us.ibm.com, xml-dist-app@w3.org
Yves Lafon wrote: > On Mon, 8 Aug 2005, noah_mendelsohn@us.ibm.com wrote: > > [moving to xml-dist-app] > >>> '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. >> >> >> >> I'm not an HTTP expert. but I note that RFC 2616 says: >> >> "The response to the request can be found >> under a different URI and SHOULD be >> retrieved using a GET method on that >> resource. This method exists primarily to >> allow the output of a POST-activated >> script to redirect the user agent to a >> selected resource. The new URI is not a >> substitute reference for the originally >> requested resource. The 303 response MUST >> NOT be cached, but the response to the >> second (redirected) request might be >> cacheable." >> >> If we want to support use of 303, then it seems to me that the MEP is >> still request/response and the WebMethod is still post. I read this as: >> "You did a POST and the usual way to get the Response is that it comes >> right back. In this case, you got a 303 telling you to pull the response >> using GET, >however it still is a response to a POST.< So, I think >> you're >> using a somewhat more elaborate means to complete the POST, not changing >> the overall intended method to GET." > > > It depends on how we model that. Currently in our spec, we have a > mapping where every SOAP interaction over HTTP equals with one HTTP > request (as the redirect put the state machine back in "init" state, > with another URI). In this case, it will be modelled differently, as the > GET can't be done at the init state ("requesting" state?) > I quite agree with that. If our binding relied on the underlying transport (HTTP) after the 1st request and said do what the HTTP spec says then we would be in a place where we could say -- it is still a response to POST, and that more elaborate means are being used to complete the POST. But we specifically say that it goes back to the Init state with a new value of the property "http://www.w3.org/2003/05/soap/mep/ImmediateDestination". As a state machine, then the requester then has to do exactly what it did before (using different value for the property "http://www.w3.org/2003/05/soap/mep/ImmediateDestination"). > 300 Multiple Choices is also interesting, as the automatic choice for a > retry depends on the presence of a Location header, and choud be > mentionned, 305 is pretty straightforward, so is 304 (even if in that > case we don't have an explicit SOAP envelope back). > I'm beginning to wonder if we have over specified things in our binding, rather than saying do what the underlying transport say you must do. > Our current definition for 3xx deals only with 301/302/307 (and 300 if > the Location header is present). >
Received on Wednesday, 10 August 2005 05:16:18 UTC