Re: The use of binary data in any part of HTTP 2.0 is not good

Eliot Lear <lear@cisco.com> Mon, 21 January 2013 09:17 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 11CF921F86AC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 21 Jan 2013 01:17:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.598
X-Spam-Level:
X-Spam-Status: No, score=-10.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, 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 6bSDeaaqpyH4 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 21 Jan 2013 01:17:26 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 66BAE21F845D for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 21 Jan 2013 01:17:26 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1TxDUC-0002kp-OQ for ietf-http-wg-dist@listhub.w3.org; Mon, 21 Jan 2013 09:16:12 +0000
Resent-Date: Mon, 21 Jan 2013 09:16:12 +0000
Resent-Message-Id: <E1TxDUC-0002kp-OQ@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <lear@cisco.com>) id 1TxDU4-0002iP-EM for ietf-http-wg@listhub.w3.org; Mon, 21 Jan 2013 09:16:04 +0000
Received: from ams-iport-4.cisco.com ([144.254.224.147]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <lear@cisco.com>) id 1TxDU3-0000Gm-4n for ietf-http-wg@w3.org; Mon, 21 Jan 2013 09:16:04 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=11980; q=dns/txt; s=iport; t=1358759763; x=1359969363; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to; bh=fbRPnMMwzWKi1N9KpZMkAb6TREfGMCY9JPRAmGXdL+g=; b=b1UqH55Z7HqOUUOJnpaSMtDMe744qSlRGSedOqqFBwBpp1/+WILH+54T H43cYYn4eBbRn4AqpMSjRceVc8YGpWdfTcl6rONTbgO8semgm7V+9zO0K dW57O+zRqfsvA1DnA1pCR6An9dDKMbwiQ5fiTc1cbk0KY2jUXKz8Vq1RP 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgYFAKkF/VCQ/khL/2dsb2JhbABEhkWFXLIMFnOCHgEBAQQjVQEQCQIOCgkWCAMCAgkDAgECAQ8lEQYNAQUCAQEQh3MDDwyOcJp+iCsNiGSMCYQdgRMDlDaBVoEcihuFEoJ2
X-IronPort-AV: E=Sophos; i="4.84,505,1355097600"; d="scan'208,217"; a="11229624"
Received: from ams-core-2.cisco.com ([144.254.72.75]) by ams-iport-4.cisco.com with ESMTP; 21 Jan 2013 09:15:35 +0000
Received: from dhcp-10-61-100-68.cisco.com (dhcp-10-61-100-68.cisco.com [10.61.100.68]) by ams-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id r0L9FYQO030274 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 21 Jan 2013 09:15:35 GMT
Message-ID: <50FD0735.6090904@cisco.com>
Date: Mon, 21 Jan 2013 10:15:33 +0100
From: Eliot Lear <lear@cisco.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130107 Thunderbird/17.0.2
MIME-Version: 1.0
To: Roberto Peon <grmocg@gmail.com>
CC: Tim Bray <tbray@textuality.com>, Will Chan <willchan@chromium.org>, Mark Nottingham <mnot@mnot.net>, HTTP Working Group <ietf-http-wg@w3.org>, Pablo <paa.listas@gmail.com>
References: <CAAZO4q4vEiYhH5FaX2XCxXox9jkf4dLTy8coQZiE+CYHA-QzBg@mail.gmail.com> <CAA4WUYhkVBRAyY1O32aOiWB8=46SBidFOjKH+e7PGbB7mKzmiQ@mail.gmail.com> <DC03C924-9DCC-45CE-B9DB-5906EADAF9C4@mnot.net> <CAHBU6iuaeAeTrz6TSOyhNvW2pXWgQB_RQ+6MYAb9DyJUZ00Rcg@mail.gmail.com> <CAP+FsNfMKT02nwX-i1LYARcjhQH3sNotkzaJH4sY0YQmHk2WcA@mail.gmail.com>
In-Reply-To: <CAP+FsNfMKT02nwX-i1LYARcjhQH3sNotkzaJH4sY0YQmHk2WcA@mail.gmail.com>
X-Enigmail-Version: 1.5
Content-Type: multipart/alternative; boundary="------------060508040605040100090901"
Received-SPF: pass client-ip=144.254.224.147; envelope-from=lear@cisco.com; helo=ams-iport-4.cisco.com
X-W3C-Hub-Spam-Status: No, score=-14.2
X-W3C-Hub-Spam-Report: AWL=0.333, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5
X-W3C-Scan-Sig: maggie.w3.org 1TxDU3-0000Gm-4n 21e058c3d8d51342b57625ed27508da0
X-Original-To: ietf-http-wg@w3.org
Subject: Re: The use of binary data in any part of HTTP 2.0 is not good
Archived-At: <http://www.w3.org/mid/50FD0735.6090904@cisco.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/16078
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>

Let's separate the general case from this one.  In the general case,
interoperability can be helped with text you don't need a library to
interact the other endpoint.  You just need fingers and telnet.  To
underestimate that value is to I think misunderstand the history of some
of our success.  Early movement to ASN.1 for so-called ease of parsing
by computers and performance led to practically a SINGULAR
implementation of the encode/decode rules, which in turn led to a
horrendous security mess in 2002.

HTTP may require compression and performance improvement; we'll see, I
suppose.  Certainly it's vastly more complex than SMTP, requiring not
just a simple capabilities exchange and then a transaction, but quite a
bit more interpretation of results by both parties.  The struggle we
have before us is whether the ecosystem can or should move over, based
on such a low level change.  If it leads to a small number of encoders
and decoders, surely that would be bad.

Eliot


On 1/21/13 12:47 AM, Roberto Peon wrote:
>
> Text formats are, surprisingly, not easier to debug in my experience.
>
> Admittedly, they only require a text editor to examine, but, for a
> binary protocol, that is easy to remedy with a short utility. The
> ambiguity of how to parse that text format, however makes this
> examination more time consuming and error prone.
>
> In terms of total complexity, binary framed protocols are often far
> simpler, and thus more robust. In terms of total lines of code, a
> binary framer plus utility to present the data in human readable
> format is still less complex and smaller than most text framed
> protocols. In terms of CPU consumption, binary framed protocols are
> often faster.
>
> If you'd like to make a fast http parser, I'm happy to give you a
> binary framed version which will be significantly faster, smaller in
> lines of code, and more memory efficient.
>
> -=R
>
> On Jan 20, 2013 3:26 PM, "Tim Bray" <tbray@textuality.com
> <mailto:tbray@textuality.com>> wrote:
>
>     Would it be possible to be data-driven?  Textual formats are
>     well-known to be easier to debug; but clearly, if there’s a
>     substantial performance benefit to going all-binary, so be it. So what
>     is the advantage, quantitatively? -T
>
>     On Sun, Jan 20, 2013 at 3:04 PM, Mark Nottingham <mnot@mnot.net
>     <mailto:mnot@mnot.net>> wrote:
>     > In one of our recent meetings, one of the grey-bearded IETF
>     old-timers (I forget which, sorry) said that a textual-protocol
>     was a nice-to-have, but that it shouldn't be a determining factor
>     in design.
>     >
>     > I.e., if you can get everything you need out of a protocol,
>     *and* make it textual, do so, but if it detracts from the value
>     you get from it, don't let that constrain you.
>     >
>     > FWIW, I think that's a good rule of thumb. However, this means
>     that the community is going to need *excellent* tooling for
>     analysing, debugging, etc. HTTP traffic; and I don't just mean a
>     Wireshark plugin!
>     >
>     > Cheers,
>     >
>     >
>     > On 21/01/2013, at 9:36 AM, William Chan (陈智昌)
>     <willchan@chromium.org <mailto:willchan@chromium.org>> wrote:
>     >
>     >> There are many advantages to using binary data. If you would like a
>     >> textual representation of a protocol, I advise using a utility to
>     >> generate one for you.
>     >>
>     >> On Sun, Jan 20, 2013 at 2:20 PM, Pablo <paa.listas@gmail.com
>     <mailto:paa.listas@gmail.com>> wrote:
>     >>> Hello,
>     >>>
>     >>>   I have readed this document
>     >>>
>     http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft1
>     today [1].
>     >>>
>     >>> I just wanted to say that I think that the use of any binary
>     data (framing,
>     >>> header compression, etc.) in any place of the "header" part of
>     HTTP protocol
>     >>> is not good; so, please only use plaintext for HTTP 2.0
>     because, otherwise,
>     >>> that will make very difficult to "see" the headers's protocol :)
>     >>>
>     >>> Thats all,
>     >>> Thanks for reading this few lines, sorry for my basic English,
>     and I hope
>     >>> that you can re-think all this of using binary data in any
>     part of HTTP X.X
>     >>> (ej: session layer).
>     >>>
>     >>>
>     >>> [1] I started knowing about HTTP 2.0 here:
>     >>>
>     http://webscannotes.com/2012/10/09/http-2-0-officially-in-the-works/
>     >>>
>     >>
>     >
>     > --
>     > Mark Nottingham   http://www.mnot.net/
>     >
>     >
>     >
>     >
>