- From: <noah_mendelsohn@us.ibm.com>
- Date: Mon, 8 Aug 2005 14:38:19 -0400
- To: Anish Karmarkar <Anish.Karmarkar@oracle.com>
- Cc: xmlp-comments@w3.org
Anish: I agree that this whole business of 3XX codes is worth some explicit attention, though I dont' feel I yet understand it well enough to endorse a proposal to do errata. We might still find that no changes are needed, or else that any changes are too large to qualify as errata. In that second case, we'll have to decide whether they are worth the disruption of a new version of SOAP, or perhaps an erratum saying: "This doesn't work right, it's broken, we aren't fixing it for awhile if ever, so don't do that!" Anish Karimarkar wrote: > 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. 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." Again, an HTTP expert should validate my intuition here. -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 -------------------------------------- Anish Karmarkar <Anish.Karmarkar@oracle.com> Sent by: xmlp-comments-request@w3.org 08/03/2005 03:49 AM To: xmlp-comments@w3.org cc: (bcc: Noah Mendelsohn/Cambridge/IBM) Subject: 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 Monday, 8 August 2005 18:38:33 UTC