- From: Mark Nottingham <mark.nottingham@bea.com>
- Date: Sun, 23 Oct 2005 21:32:03 -0700
- To: Yves Lafon <ylafon@w3.org>
- Cc: xml-dist-app@w3.org
Yves, This looks good to me. WRT redirect handling; HTTP requires that requests not be automatically retried *unless* it is confirmed by the user. For example, the W3C's Amaya browser allows you to list the domains for which it should automatically follow redirections on PUT. Perhaps a similar approach could be taken here; e.g., a redirect is an exceptional condition *unless* the client is explicitly configured to automatically redirect. I'm not sure how to express that in the state machine, but then I was never a big fan of the abstract model... On 11/10/2005, at 9:31 AM, Yves Lafon wrote: > > First, the REC is ok with the "common" 3xx codes used for redirect, > 301, 302 and 307. > > From table 17, in part2: > > Status Code: > 3xx > > Reason Phrase: > Redirection > > Significance/Action: > 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. > > next state: > "Init" > > Here is a quote from rfc2616 regarding 301 (it applies also to 302 > and 307): > <<< > If the 301 status code is received in response to a request other > than GET or HEAD, the user agent MUST NOT automatically redirect > the > request unless it can be confirmed by the user, since this might > change the conditions under which the request was issued. > >>>> >>>> > > As the redirect handling is done at the SOAP level, everything is OK. > > For 304 Not modified, it means that the response was already > cached, so I expect that the reply at the SOAP layer might be given > by the underlying layer (but we can explicitely say that with text > like > "If the implementation want to cache responses following the > indication of the HTTP headers, and performs conditional request, > then the implementation MUST surface the SOAP message at the SOAP > level in case of a 304 HTTP response" ). > > 305 seems obvious as well. > > Now for 303. > > 303 is different as it changes the kind of HTTP request to a GET, > and also there is no longer an entity body sent in the subsequent > request. > The good thing is that the state machine is the same regardless of > the MEP defined, so we are not running in the issue of having to > switch state machine there, which is what I feard originally. > > So the suggested course of action for 303 is to add an entry in > table 17 > > <ProposedText> > > Status Code: > 303 > > Reason Phrase: > See Other > > Significance/Action: > 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. The value of http://www.w3.org/ > 2003/05/soap/features/web-method/Method is changed to "GET", the > value of http://www.w3.org/2003/05/soap/mep/OutboundMessage is set > to null. > > Next Step: > Init > > </ProposedText> > > The next state is "Init" as the HTTP request has to be > reconstructed with the new property values. > > > -- > Yves Lafon - W3C > "Baroula que barouleras, au tiéu toujou t'entourneras." > > -- Mark Nottingham Principal Technologist Office of the CTO BEA Systems
Received on Monday, 24 October 2005 04:32:42 UTC