Re: Multi-GET, extreme compression?

Mark Nottingham <mnot@mnot.net> Mon, 18 February 2013 02:25 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 31F5C21F8754 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 17 Feb 2013 18:25:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.436
X-Spam-Level:
X-Spam-Status: No, score=-9.436 tagged_above=-999 required=5 tests=[AWL=1.163, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YWky1esos2T3 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 17 Feb 2013 18:25:14 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 4113221F8519 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 17 Feb 2013 18:25:14 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1U7GOu-0003v5-Cx for ietf-http-wg-dist@listhub.w3.org; Mon, 18 Feb 2013 02:24:16 +0000
Resent-Date: Mon, 18 Feb 2013 02:24:16 +0000
Resent-Message-Id: <E1U7GOu-0003v5-Cx@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <mnot@mnot.net>) id 1U7GOm-0003uH-3H for ietf-http-wg@listhub.w3.org; Mon, 18 Feb 2013 02:24:08 +0000
Received: from mxout-08.mxes.net ([216.86.168.183]) by maggie.w3.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from <mnot@mnot.net>) id 1U7GOl-0002uc-4z for ietf-http-wg@w3.org; Mon, 18 Feb 2013 02:24:08 +0000
Received: from [192.168.1.80] (unknown [118.209.197.138]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id 69954509B5; Sun, 17 Feb 2013 21:23:40 -0500 (EST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <2DA0834D-C0B7-4A26-B6AD-B5789D0CFA3B@opengroupware.org>
Date: Mon, 18 Feb 2013 13:23:37 +1100
Cc: "William Chan (陈智昌)" <willchan@chromium.org>, James M Snell <jasnell@gmail.com>, Roberto Peon <grmocg@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>, Phillip Hallam-Baker <hallam@gmail.com>, Cyrus Daboo <cyrus@daboo.name>
Content-Transfer-Encoding: quoted-printable
Message-Id: <999F9463-660A-42FC-A11C-39CDE95CC616@mnot.net>
References: <CAMm+LwiF6EM8_aQgUm=nPS5XqaG25iRGNke_rnHTM1vTGMXdfg@mail.gmail.com> <A6A82B6EF92590887D2A23D5@cyrus.local> <D9118B58-F53F-4F75-8292-2B990172E234@opengroupware.org> <CABP7RbcX2OqttZuYeuYxhyOgE_ax0M67L1ywPy_VDpW1upM69Q@mail.gmail.com> <CAP+FsNeWDBTBYJ0P-URbO5avbUno5etKid10RM+dRwDWAUys2w@mail.gmail.com> <CABP7RbfVvZnYPPsRvzmC0BtCiPBxQmYXHTRKtq8XE7Z2wY2EfA@mail.gmail.com> <CAA4WUYioRAOEbjU32yEaJuWDAySiZF=OfKXcF-8esqTP0uqwtQ@mail.gmail.com> <968F329C-B6CF-4129-B816-DC56C834A4A4@opengroupware.org> <CAA4WUYgGiJmtbswzmXWi-Ob+1HmoGnMhwr+9j9b5KS5OVQQdjQ@mail.gmail.com> <2DA0834D-C0B7-4A26-B6AD-B5789D0CFA3B@opengroupware.org>
To: Helge Hess <helge.hess@opengroupware.org>
X-Mailer: Apple Mail (2.1499)
Received-SPF: pass client-ip=216.86.168.183; envelope-from=mnot@mnot.net; helo=mxout-08.mxes.net
X-W3C-Hub-Spam-Status: No, score=-4.2
X-W3C-Hub-Spam-Report: AWL=-2.304, BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1U7GOl-0002uc-4z 4081337c8689fc416fb691543687c936
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Multi-GET, extreme compression?
Archived-At: <http://www.w3.org/mid/999F9463-660A-42FC-A11C-39CDE95CC616@mnot.net>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/16652
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Helge et al,

If you'd like to pursue this, I'd suggest that the folks who are interested get together and make a more complete proposal, e.g., as an Internet-Draft. Developing an approach like this on-list isn't going to use your time or others' well.

Thanks,


On 18/02/2013, at 1:10 PM, Helge Hess <helge.hess@opengroupware.org> wrote:

> On Feb 17, 2013, at 5:52 PM, William Chan (陈智昌) <willchan@chromium.org> wrote:
>> I'm confused. We issue individual GETs for the individual resource URLs. How do we know to combine those individual resources into this magical /resource/set path?
> 
> Well, I personally don't care too much about HTML here but about services, but I do think you can use the facility for this too. The browser would need to do some clever batching and latency management, but thats not really related to HTTP but HTML and an issue in any protocol.
> Fixing HTML would be a different thing, but sure, you could introduce resource-set tags which would directly map to batched requests.
> 
> Presumably you receive your HTML in a streamed fashion as packets arrive, presumably parsing a packet is way faster than any network traffic. In fact many resources will be in the first few packets aka the head (scripts, CSS). For CSS its even more condensed within one resource, you probably get a few URLs within a very short time.
> 
>> Furthermore, as I previously linked to in the very first reply to the thread, when we discussed MGET previously, I highlighted how the browser incrementally parses the document and sends GETs for resources as it discovers them.
> 
> Yes, you might want to wait n (3?) milliseconds before sending out additional requests and batch what you get within that timeframe. You don't really send out requests in realtime while parsing, do you? ;-)
> 
>>> Also, how does this work for HTTP/1.X? Since we'll be living in a transitional world for awhile, I'd like to understand how this allows for HTTP/1.X semantics backwards compatibility.
>> 
>> An old server would return a 405 when the BATCH comes in, then the client needs to switch to performing the operations individually.
>> 
>> So, you handwaved over how the client would magically transform URL1 + URL2 + URL3 into magical example.com/resource/set. Assuming that's possible, how do you do the reverse transformation, when a HTTP/2=>HTTP/1.X gateway needs to translate HTTP/2 MGET requests for this /resource/set into the individual GETs for the original URLs.
> 
> I can't follow you here. A BATCH of 5 GETs would exactly be the same like 5 individual GETs w/ less HTTP overhead and better compression. Its trivial to convert this in both directions.
> 
>> And even if this is possible, how reasonable is it to pay this roundtrip on receiving the 405? We've fought really hard to eliminate roundtrips.
> 
> Maybe I'm missing something, but I thought the goal is to reduce 10...N requests to 1 in the best case. That 10 requests are 11 in the legacy case seems to be fine to me, plus a browser could remember on which sites it has seen a 405 and avoid the hit in the future.
> 
> hh
> 
> 

--
Mark Nottingham   http://www.mnot.net/