W3C home > Mailing lists > Public > ietf-http-wg@w3.org > July to September 2014

Re: HTTP/2 response completed before its request

From: Willy Tarreau <w@1wt.eu>
Date: Wed, 2 Jul 2014 08:59:01 +0200
To: "William Chan (?????????)" <willchan@chromium.org>
Cc: Martin Thomson <martin.thomson@gmail.com>, Patrick McManus <mcmanus@ducksong.com>, Jeff Pinner <jpinner@twitter.com>, Jesse Wilson <jesse@swank.ca>, HTTP Working Group <ietf-http-wg@w3.org>
Message-ID: <20140702065901.GB17220@1wt.eu>
On Tue, Jul 01, 2014 at 12:03:41PM -0700, William Chan (?????????) wrote:
> On Tue, Jul 1, 2014 at 11:56 AM, Martin Thomson <martin.thomson@gmail.com>
> wrote:
> 
> > On 1 July 2014 11:54, Patrick McManus <mcmanus@ducksong.com> wrote:
> > > are you suggesting that as required or reasonable client behavior?
> >
> > Just reasonable.  It's perfectly OK to complete the request, however
> > long that takes.
> >
> > > The only firm bug there seems to be the server not sending updates.
> >
> > Definitely.  But who gets the blame for the stall?
> >
> 
> The server. Even if it doesn't actually use the request data, it needs to
> send to /dev/null and send WINDOW_UPDATEs, until it gets to the point that
> it can send the full response and send a RST_STREAM. I assert this to be
> generally true for HTTP semantics, regardless of HTTP/1.X or HTTP/2 on the
> wire.

There's something I don't understand here. We used to say that one of the
benefits of h2 vs h1 was that it was possible to abort a stream without
breaking a connection, but here it seems to be the complete opposite.

Does the same problem happen when the client is a browser which retrieves
a very large file and the user presses "Stop" during the download ? Does
the browser continue to read all data and only stop rendering it in this
case ? That does not make much sense, because the primary purpose for
"Stop" is to release the small DSL or POTS line and be able to quickly
use it for another request. Here if every time a user presses Stop, the
client has to break the whole connection to abort, it possibly means
stopping ongoing downloads and such things, which is really not appropriate.
At least in HTTP/1 when you stop a large file transfer, you don't stop other
transfers from the same server. The typical case is on download sites, you
have a download of a tar.bz2 coming and at the same time you click on a
MANIFEST file which is huge and you're not interested in downloading.

Can someone enlighten me on this ?

Thanks,
Willy
Received on Wednesday, 2 July 2014 06:59:43 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 30 March 2016 09:57:08 UTC