- From: Martin Thomson <martin.thomson@gmail.com>
- Date: Tue, 26 Mar 2013 13:55:49 -0700
- To: Roberto Peon <grmocg@gmail.com>
- Cc: William Chan (ιζΊζ) <willchan@chromium.org>, HTTP Working Group <ietf-http-wg@w3.org>
OK, I got it. This is a new feature that the framing layer offers the HTTP usage, namely: safely retry non-idempotent requests. It's not explained especially well, so I've added an issue to track the creation of a better explanation: https://github.com/http2/http2-spec/issues/57 On 26 March 2013 13:41, Martin Thomson <martin.thomson@gmail.com> wrote: > On 26 March 2013 13:28, Roberto Peon <grmocg@gmail.com> wrote: >>> Bottom line: what do I do differently in response to a refused stream >>> as opposed to a cancelled one? >> You (rather, a browser) can automatically send the request again in the case >> where a non-idempotent method such as POST was used. >> With cancel, the browser would have to ask the client to confirm before >> doing so. > > Why would the client not retry? I would have modeled all of these as > being equivalent to an HTTP/1.1 connection drop (albeit with a nicer > recovery story). > > It might help to examine why a server would send a RST_STREAM w/ > CANCEL. Here's what I can think of: > - server is overloaded, wants to send Retry-After for requests but > not lose the connection > - resource disappeared or changed mid-response > - an upstream connection or request broke > > Anything else? Because I can't see why retry is a bad idea in any of > these cases, subject to the normal restrictions (idempotence, stream > availability, etc...).
Received on Tuesday, 26 March 2013 20:56:17 UTC