Re: JSON headers

Andy Green <andy@warmcat.com> Mon, 11 July 2016 07:19 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 4AE5312D0C9 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 11 Jul 2016 00:19:05 -0700 (PDT)
X-Quarantine-ID: <kCmohDcpoyup>
X-Virus-Scanned: amavisd-new at amsl.com
X-Amavis-Alert: BAD HEADER SECTION, Improper folded header field made up entirely of whitespace (char 09 hex): References: ...0149@critter.freebsd.dk>\n\t\n <A17D3EFD-A93[...]
X-Spam-Flag: NO
X-Spam-Score: -8.308
X-Spam-Level:
X-Spam-Status: No, score=-8.308 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=warmcat.com
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 kCmohDcpoyup for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 11 Jul 2016 00:19:04 -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 23FB812D0C2 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 11 Jul 2016 00:19:04 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1bMVRL-0004Wv-Ia for ietf-http-wg-dist@listhub.w3.org; Mon, 11 Jul 2016 07:15:39 +0000
Resent-Date: Mon, 11 Jul 2016 07:15:39 +0000
Resent-Message-Id: <E1bMVRL-0004Wv-Ia@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <andy@warmcat.com>) id 1bMVRI-0004W5-Rc for ietf-http-wg@listhub.w3.org; Mon, 11 Jul 2016 07:15:36 +0000
Received: from mail.warmcat.com ([163.172.24.82]) by lisa.w3.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from <andy@warmcat.com>) id 1bMVRG-0000pQ-3M for ietf-http-wg@w3.org; Mon, 11 Jul 2016 07:15:36 +0000
DKIM-Filter: OpenDKIM Filter v2.10.3 warmcat.warmcat.com D1594DA29A
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=warmcat.com; s=dkim; t=1468221304; bh=/t1EuX+DfR+orUG4+Hczv6JU7SjJQR9rIlijjshcc9Q=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=LFmTXfhLnTfUssAwUusmQrzoBPUHLyOzMey76zu9REJjb9fSJnK2sGvIGI94CVjLV yOVh8tKb9CYKiOzmXfV3w36oNOuWKZW4y+F1FpjOd5pKTyLoQ8EVKpbc6qJ2LOA87I CwYb/3n48UqcOU9jt49WbRStlj+csDjx23sby31Y=
Message-ID: <1468221303.6746.100.camel@warmcat.com>
From: Andy Green <andy@warmcat.com>
To: Julian Reschke <julian.reschke@gmx.de>, "Martin J. Dürst" <duerst@it.aoyama.ac.jp>, Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc: Yanick Rochon <yanick.rochon@gmail.com>, Phil Hunt <phil.hunt@oracle.com>, HTTP Working Group <ietf-http-wg@w3.org>
Date: Mon, 11 Jul 2016 15:15:03 +0800
In-Reply-To: <bcb358a8-f582-2b38-658c-7b2f8464272b@gmx.de>
References: <74180.1468000149@critter.freebsd.dk> <A17D3EFD-A935-4971-BCF6-DC9D38302CAD@oracle.com> <564a72e8-b9d3-1f9c-5982-48f2b07272e5@greenbytes.de> <3924.1468137899@critter.freebsd.dk> <683f5f58-6046-d9fb-cc75-d0ab3890ce23@greenbytes.de> <4105.1468141779@critter.freebsd.dk> <5cdf0fa8-063c-7eaa-a9e3-fb6db7417254@gmx.de> <4213.1468143913@critter.freebsd.dk> <94e4a5c2-3465-fef3-6221-d9f4fcccb5fa@gmx.de> <4324.1468145426@critter.freebsd.dk> <CAB0No9kf6gje3Tc+impphV5tUHjksCkL1PJ1YAgNjXO+tLq=XA@mail.gmail.com> <176d58df-debf-e660-edf7-7d686c926ef6@gmx.de> <5939.1468189218@critter.freebsd.dk> <94d7c36a-7d6d-11bf-27b6-2e6a2b807b09@it.aoyama.ac.jp> <1468211839.6746.67.camel@warmcat.com> <74cbd49a-9dc1-9725-35d0-e1b1f8d219bd@gmx.de> <1468219057.6746.85.camel@warmcat.com> <bcb358a8-f582-2b38-658c-7b2f8464272b@gmx.de>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=163.172.24.82; envelope-from=andy@warmcat.com; helo=mail.warmcat.com
X-W3C-Hub-Spam-Status: No, score=-5.7
X-W3C-Hub-Spam-Report: AWL=-0.428, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-1.287, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1bMVRG-0000pQ-3M c696de939b0d6f8ed7075ed2be637a27
X-Original-To: ietf-http-wg@w3.org
Subject: Re: JSON headers
Archived-At: <http://www.w3.org/mid/1468221303.6746.100.camel@warmcat.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31884
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>

On Mon, 2016-07-11 at 08:56 +0200, Julian Reschke wrote:
> On 2016-07-11 08:37, Andy Green wrote:
> > ...
> > > > I'm a bit bemused why the world needs JSON headers instead of
> > > > the
> > > > cool
> > > > stuff for header coding in http/2, but I can give one point of
> > > > view
> > > > related to duplicate headers and efficiency.
> > > > ...
> > > 
> > > I don't understand the "instead" here. The data model for header
> > > fields
> > > exactly the same in HTTP/1.1 and HTTP/2, so the proposed format
> > > applies
> > > to both.
> > 
> > I mean now it exists and is formalized, and implementations exist,
> > shouldn't people be being encouraged to directly use HPACK?
> 
> Doesn't parse.
> 
> If you use HTTP/2, you always use HPACK. If you use HTTP/1.1, you
> never 
> use HPACK. There is nothing to choose here.

In there thread there's talk of this becoming HTTP/1.2...

> > Agreed, JSON would in retrospect be cooler than HTTP/1.x
> > headers.  But
> > I'm surprised there is any energy to go and make more ways to send
> > HTTP
> > headers.
> 
> Actually, it's an attempt to have *less* ways, in that it gives
> people 
> defining new header fields a framework to use, instead of having to 
> invent new micro-syntax every time.

Maybe following this thread I get the wrong end of the stick... if it's
just the additional option of JSON-formatted values where there is
structure in the header value, that makes sense all around, and works
fine with HPACK.

In the thread it seemed people discuss actual JSON formatted headers as
a whole, ie, the whole header block becomes JSON.

I dunno there is any point to that, and it won't fly with HPACK.  But
maybe I just misread what was suggested.

> > Mightn't it be better to look at tweaking HPACK to have a "strict
> > flag"
> > or somesuch to give some of the qualities discussed here, like only
> > one
> > instance of each header?  Otherwise HPACK is pretty nice.
> > 
> > Apologies if I miss the point but JSON headers won't directly fly
> > on
> > HPACK AFAICS, unless your idea is making an uber-header and its
> > value
> > is the whole JSON payload.  But that's needlessly incompatible when
> > it's dealing with the same traditional headers and values HPACK
> > already
> > supports actually.
> 
> They "fly" exactly the same way as in HTTP/1.1; could you elaborate
> on 
> where you see a difference?

JSON formatted values would be fine... in fact websocket extensions
option negotiation could have done with that...

-Andy

> Best regards, Julian