Re: If not JSON, what then ?

"Poul-Henning Kamp" <phk@phk.freebsd.dk> Wed, 03 August 2016 13:12 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@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 01E8E12DB94 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 3 Aug 2016 06:12:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.208
X-Spam-Level:
X-Spam-Status: No, score=-8.208 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.287, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XgFs-IvR6Wq0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 3 Aug 2016 06:12:25 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 93F1E12DB70 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 3 Aug 2016 06:12:09 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1bUvtq-0003PC-4z for ietf-http-wg-dist@listhub.w3.org; Wed, 03 Aug 2016 13:07:54 +0000
Resent-Date: Wed, 03 Aug 2016 13:07:54 +0000
Resent-Message-Id: <E1bUvtq-0003PC-4z@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <phk@phk.freebsd.dk>) id 1bUvtl-0003JM-BS for ietf-http-wg@listhub.w3.org; Wed, 03 Aug 2016 13:07:49 +0000
Received: from phk.freebsd.dk ([130.225.244.222]) by maggie.w3.org with esmtp (Exim 4.80) (envelope-from <phk@phk.freebsd.dk>) id 1bUvth-0007Jl-UM for ietf-http-wg@w3.org; Wed, 03 Aug 2016 13:07:48 +0000
Received: from critter.freebsd.dk (unknown [192.168.55.3]) by phk.freebsd.dk (Postfix) with ESMTP id B7A02273AE; Wed, 3 Aug 2016 13:07:22 +0000 (UTC)
Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.15.2/8.15.2) with ESMTP id u73D7KhT075815; Wed, 3 Aug 2016 13:07:20 GMT (envelope-from phk@phk.freebsd.dk)
To: Martin Thomson <martin.thomson@gmail.com>
cc: Willy Tarreau <w@1wt.eu>, Kari hurtta <hurtta-ietf@elmme-mailer.org>, HTTP working group mailing list <ietf-http-wg@w3.org>, Mark Nottingham <mnot@mnot.net>
In-reply-to: <CABkgnnWqHTinXDNXxM7Lw9SBGCCPb-j6BgKF=wjWKXRUbfe1oQ@mail.gmail.com>
From: Poul-Henning Kamp <phk@phk.freebsd.dk>
References: <12ED69B4-C924-475E-9432-B8FEB4B9DF80@mnot.net> <20160803063730.EDABAF792@welho-filter3.welho.com> <20160803064633.GB500@1wt.eu> <201608030937.u739bpxx007542@shell.siilo.fmi.fi> <20160803094554.GE500@1wt.eu> <CABkgnnWqHTinXDNXxM7Lw9SBGCCPb-j6BgKF=wjWKXRUbfe1oQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <75813.1470229640.1@critter.freebsd.dk>
Content-Transfer-Encoding: quoted-printable
Date: Wed, 03 Aug 2016 13:07:20 +0000
Message-ID: <75814.1470229640@critter.freebsd.dk>
Received-SPF: none client-ip=130.225.244.222; envelope-from=phk@phk.freebsd.dk; helo=phk.freebsd.dk
X-W3C-Hub-Spam-Status: No, score=-6.0
X-W3C-Hub-Spam-Report: AWL=-0.822, BAYES_00=-1.9, RP_MATCHES_RCVD=-1.245, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1bUvth-0007Jl-UM f251d6fa31f7e96868cc4961aad09e7a
X-Original-To: ietf-http-wg@w3.org
Subject: Re: If not JSON, what then ?
Archived-At: <http://www.w3.org/mid/75814.1470229640@critter.freebsd.dk>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/32173
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>

--------
In message <CABkgnnWqHTinXDNXxM7Lw9SBGCCPb-j6BgKF=wjWKXRUbfe1oQ@mail.gmail.com>, Martin Thomson writes:
>On 3 August 2016 at 19:45, Willy Tarreau <w@1wt.eu> wrote:

>> Such bytes are rare and will have a large huffman encoding in H2. Martin's
>> suggestion of '><' could be more efficient, though I haven't checked.
>
>I tend to think that we should not let hpack drive this.

Agreed to that, but if we can easily be huffman-friendly, we should.

>But we'd be defining a binary encoding.
>
>Binary avoids the nastiness with character encoding (just use UTF-8),
>makes numbers and dates much more numbery, and lets us tailor the
>other types to our needs.

What I'm trying to do here and now, is a data model and HTTP/1
serialization which by design overlaps as many existing headers
defined syntax as possible, to minimize the number of parsers
required now and in the future.

By leeching on existing H1 syntax we avoid the b64 hack and we don't
need to touch HPACK before this can go live.

For H3+'s HPACK-ism, we may decide to serialize these structured
headers as "native binary" rather than "text-compression", but until
we know more about H3, that is a premature decision.

The downside of this approach is that the RFC723x's "quoted string"
also carries "utf8-string" and "binary-blob" in this new syntax,
signposted by two new, backwards compatible escape sequences.

>I think that PHK is perfectly right in recognizing that we don't have
>complex needs.  I actually think that this is good.  Limitations are
>empowering.

Indeed.

>I said this privately to someone at the workshop, but my realization
>was that we currently have schema-aware parsing with extremely limited
>points of extension.  A revised system that supports that doesn't need
>to be very complex.  Even a single level map of string key to
>(optional) string value is more extensibility than we can sensibly
>defend.

As with HPACK/huffman, I don't see the need to heurstically restict
the data model, I would rather precisely restrict its use for
individual headers.

-- 
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.