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

Re: #541: CONTINUATION

From: Poul-Henning Kamp <phk@phk.freebsd.dk>
Date: Fri, 04 Jul 2014 07:57:06 +0000
To: Mark Nottingham <mnot@mnot.net>
cc: Greg Wilkins <gregw@intalio.com>, Amos Jeffries <squid3@treenet.co.nz>, HTTP Working Group <ietf-http-wg@w3.org>
Message-ID: <60323.1404460626@critter.freebsd.dk>
In message <2B18DFA2-9B08-426C-B585-C142F2DFD5E7@mnot.net>, Mark Nottingham wri
tes:

>I've heard it argued that CONTINUATION on smaller-than-16k chunks is 
>useful, because it allows you to flush your buffers on sending. However, 
>in the current design, it seems like that's pushing a problem off of 
>the sender and onto the recipient, which isn't a great dynamic. 

In the HTTP ecosystem the choking point(s) are everywhere but on
the client side:  proxies, load-balancers and servers all cope with
far higher traffic-densities than clients do.

There may be exceptions such as CERNS LHC TB/s data distribution,
but I bet they will not have trouble buffering a few kilobytes of
headers before sending them :-)

I think it is perfectly fair to demand that clients be able to
*send* the HEADERS in one go, because there are plenty of avenues
for them to do so, even in very small-memory environments.

Very puny environments may be able to predict or even hardcode
the HEADERS length -- after all there are only so many different
things the microcontroller in a light-bulb can tell the world.

If that doesn't work for you, you can structure you web-application
to put the variable stuff into the DATA frames.

Finally, by suitably choosing how to use HPACK compression, you
can do a two-pass algorithm and just calculate the HEADERS length
on the first pass, and send the HEADERS on the second pass, using
as many writes as you like.  If you are that memory constrained
there will be no other competing frames sent at the same time.

>This drops us back into the jumbo argument. Allowing large DATA frames 
>defeats the goals of multiplexing, [...]

When I tried to learn to play the violin, the first thing my teacher
said was "It's unfair:  You have to pay for the entire bow, but you
only get to use a little bit of it."

Just because you *can* send jumboframes doesn't mean you *have* to
do so.

The one exception I want is that you SHALL send all the headers in one
single frame.

The size of those headers is a web-app design issue, and if sending
around 40K of cookies hurts example.com's performance and
user-perception, then example.com's web-designers are perfectly
aware both what and how to fix that problem.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.
Received on Friday, 4 July 2014 07:57:44 UTC

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