Re: JSON headers

"Poul-Henning Kamp" <phk@phk.freebsd.dk> Mon, 11 July 2016 05:57 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 4D10912B00D for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 10 Jul 2016 22:57:48 -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 WXXeof4K4iZB for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 10 Jul 2016 22:57:46 -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 D9762127058 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 10 Jul 2016 22:57:46 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1bMU9x-0002mw-1P for ietf-http-wg-dist@listhub.w3.org; Mon, 11 Jul 2016 05:53:37 +0000
Resent-Date: Mon, 11 Jul 2016 05:53:37 +0000
Resent-Message-Id: <E1bMU9x-0002mw-1P@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 <phk@phk.freebsd.dk>) id 1bMU9u-0002lO-AV for ietf-http-wg@listhub.w3.org; Mon, 11 Jul 2016 05:53:34 +0000
Received: from phk.freebsd.dk ([130.225.244.222]) by lisa.w3.org with esmtp (Exim 4.80) (envelope-from <phk@phk.freebsd.dk>) id 1bMU9s-0004t9-M2 for ietf-http-wg@w3.org; Mon, 11 Jul 2016 05:53:33 +0000
Received: from critter.freebsd.dk (unknown [192.168.55.3]) by phk.freebsd.dk (Postfix) with ESMTP id 55C08273B3; Mon, 11 Jul 2016 05:53:09 +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 u6B5r6e2007214; Mon, 11 Jul 2016 05:53:07 GMT (envelope-from phk@phk.freebsd.dk)
To: duerst@it.aoyama.ac.jp
cc: Julian Reschke <julian.reschke@gmx.de>, Yanick Rochon <yanick.rochon@gmail.com>, Phil Hunt <phil.hunt@oracle.com>, HTTP Working Group <ietf-http-wg@w3.org>
In-reply-to: <94d7c36a-7d6d-11bf-27b6-2e6a2b807b09@it.aoyama.ac.jp>
From: Poul-Henning Kamp <phk@phk.freebsd.dk>
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>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <7212.1468216386.1@critter.freebsd.dk>
Date: Mon, 11 Jul 2016 05:53:06 +0000
Message-ID: <7213.1468216386@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.801, BAYES_00=-1.9, RP_MATCHES_RCVD=-1.287, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1bMU9s-0004t9-M2 78380d60be0d77c357d7956f99985fa8
X-Original-To: ietf-http-wg@w3.org
Subject: Re: JSON headers
Archived-At: <http://www.w3.org/mid/7213.1468216386@critter.freebsd.dk>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31873
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>

--------

>My understanding is that you are extremely concerned about the speed at 
>which headers can be processed.

Speed, reliability *and* security.

HTTP is so infested with weird corner-cases that 10 RFC's were needed
to explain _most_ of them, whatever we do going forward, we should
strive for the simplest realistic solution.

Therefore I want to eliminate as many cornercases as possible before
they ever appear in the wild.

>Could you give some more background on why speed-wise, de/serializing is 
>okay for you, but duplicate detection isn't?

De-serialization of JSON objects already perform duplicate detection,
why should we have to do it again in the application code ?

What happens when people who don't know about this fine detail
fails to deduplication in their application code ?

>> But this time we can shut them all with one single line of text:
>>
>> 	"Duplicate keys in JSON objects SHALL cause and be treated
>> 	as connection failure."
>
>How are you going to tell your favorite JSON library to behave that way?

I don't need to.  As long as a relevant fraction of HTTP speakers
do, then attempting to send duplicate keys will be sufficiently
broken that it won't work in practice.  Look at it as "herd immunity".

Also, my JSON parser was 500 linies of C-code in first try, it's not
like it is rocket science.

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