Re: JSON headers

Martin J. Dürst <duerst@it.aoyama.ac.jp> Mon, 11 July 2016 10:37 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 2F94E12D0C9 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 11 Jul 2016 03:37:38 -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, DKIM_SIGNED=0.1, DKIM_VALID=-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=itaoyama.onmicrosoft.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 8BzzjmUyMr79 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 11 Jul 2016 03:37:36 -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 3AB5D12D095 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 11 Jul 2016 03:37:35 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1bMYWc-0001h0-6q for ietf-http-wg-dist@listhub.w3.org; Mon, 11 Jul 2016 10:33:18 +0000
Resent-Date: Mon, 11 Jul 2016 10:33:18 +0000
Resent-Message-Id: <E1bMYWc-0001h0-6q@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 <duerst@it.aoyama.ac.jp>) id 1bMYWW-0001gA-Bl for ietf-http-wg@listhub.w3.org; Mon, 11 Jul 2016 10:33:12 +0000
Received: from mail-ty1jpn01on0111.outbound.protection.outlook.com ([104.47.93.111] helo=JPN01-TY1-obe.outbound.protection.outlook.com) by lisa.w3.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from <duerst@it.aoyama.ac.jp>) id 1bMYWM-0003Xf-Cq for ietf-http-wg@w3.org; Mon, 11 Jul 2016 10:33:11 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=itaoyama.onmicrosoft.com; s=selector1-it-aoyama-ac-jp; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=fLWsSLP52vyVDQORwEV/S2UTJ3sIOLvOQyvlQ7tW9X0=; b=afpCtTpPvVr36tXdu8Ok3MjTg03c58Eao/yTZOmFHh7+22/nK52GHsYvjQ1DDTB6wyLCCEgrHgU8SSeWJoL7iEEKL8QaVQBR6cM2f5LNT0L5i1LbnYIy6VNlZWlrwEpEX4x6/44AGGMM/mvlzg3KHFFgZepVfP81jUZo1ks7Qbc=
Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=duerst@it.aoyama.ac.jp;
Received: from [133.2.210.64] (133.2.210.64) by TY1PR01MB0924.jpnprd01.prod.outlook.com (10.167.157.135) with Microsoft SMTP Server (TLS) id 15.1.539.14; Mon, 11 Jul 2016 10:32:32 +0000
To: Poul-Henning Kamp <phk@phk.freebsd.dk>, Andy Green <andy@warmcat.com>
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> <7244.1468216534@critter.freebsd.dk>
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>
From: "Martin J. Dürst" <duerst@it.aoyama.ac.jp>
Organization: Aoyama Gakuin University
Message-ID: <dc8578f2-6c16-5b70-8080-9b8ad91c53c6@it.aoyama.ac.jp>
Date: Mon, 11 Jul 2016 19:32:25 +0900
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <7244.1468216534@critter.freebsd.dk>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [133.2.210.64]
X-ClientProxiedBy: TY1PR01CA0048.jpnprd01.prod.outlook.com (10.164.162.158) To TY1PR01MB0924.jpnprd01.prod.outlook.com (10.167.157.135)
X-MS-Office365-Filtering-Correlation-Id: 488fd06c-02f7-4eb4-4e58-08d3a976aa7f
X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB0924; 2:WAwJkocPP8ZKRI0hL/V3FyrP6zaiD/5hSB0fwjYT9NoxYttOpQRA2xfxBL497xXYM5zEPDBB2ocbpBCfwKcYPInmBmnHPvFgRvsAjJQhktqe/jiqLLzcIuuQQT8Cirr+PE6nmeShhcqe+ShN14IA0z9X+dm+esE8YXngTf8RGRrLSHpIBchG0aYB4Mtc11Nt; 3:U+im1NJ+lBtCXG2tXhsLN+Rly2wJ52peLWbhoG5WcuWs+sVgJuVJJrMJMinV1UMh9wkmYxtwxHkfccFj3/fMdSlncO6qXFiM48KrJMSALBvCsxM4ryZqikaqBK6E5Vxj
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:TY1PR01MB0924;
X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB0924; 25:YCb9zdmmS01awto8Y86W0kRoth6hrpkg6Z5tFQVO0wW5uaoRT77k1TxYRZS2qtMzCy6FIdgnSq6mdsjIC60cOFU19bIiruhYHfYgV5HuBXO2Ob/3bBCph3Pb8YOvdUcnLhNIcacwM8oR3dkYXxOm9GNBf/k7w2BRq01Vp89bEvn6Y25MnAwpZAvMG7PpEbHy0KRv5DqjYGXg1qXpcNcxVOCmHXRDO+lTGz/ltOOoUs3jYcObq3iRp12ODSKyTna1c5pFvt5/R3h4J/X8VtZySl4yQtbzLMF/owIfRVmjp3YE5zqumQp/Y4peNcCivkOJ2RnKSJ3XPqa6ohw+3blQ+Yvx1Sym08M5MjaJ2Aguz9aZR1aChx+K06kWmupuveYgeXkICYHqWFz/0tn4RUgbIAoVpWLbgryGA2yakPlSjyQTV1hmX+fMiGPSTLsQVxBwxZBvroRVR3oJKBMp5tftslxaMs1/s+i62hxp9aGFgz0K243dwvr0NBbqdo1e4Mvj9Siuu830lW42YS9FUV9f49wvAeJo4OZsXG8YCeBm5q8PPmT70gkiYfvSqwPrBJpCqcSliVYKD1aIlql9P+1gULSHqZXylqoVZUdCDef49yWOWtuQSxVm1KJF2xA4PwePzxmtEP+T7dWn+t+kgxZNw/j2VDMkCI+6S348JW5zY6kGLUEW6iJnSvU7gTSSG8ro+aTwdnqbx43jzotqsXU61FfhqIBaFvdPulgk9AKYYT8dOrZ/oa16l1Kk92cOF6yRQPGxSDEVtg8FFTls7N5TXfhrfHc0qKik9o3Qsx8Vb9wTzcIULq5r79NbNZgLPTV9
X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB0924; 31:gqL4Y2YNvH5o1pFHPBPDkHv8jBJ8f8FvyE0NCYg0G2c6ypM3d+clhjkcXHfalDp9ghEfnagSbJnvrhrPRgix2lKncksYukjBU6iyHD8QBD9M4F8mN6IfscR3qd7oWYlh3oC/s8J3oZ4KOQ26cVDrU/EuVaVUyHl3w02JPx93d15Eth3IAPoW1/DEYmscd7FsS6mXmshPi9BXgywa+L1hrg==; 4:DZqGzjtvrvUGORDIOlp1hp7q3x76hftKcr+nez6ZjBTvbRiOzLzjl3Vi2UUJ9T4P9pPHnboR6gAjsFAbAnhoYUVL4Ggk3gGeC647GAQxaNqZHjVghzygXBZqm2zKu1rzy2wYtPDPLeEEmOsHAKgV263hmD9S3UewX4vEyj3BS6zC0CsbYqg7sFiN1SxHZaj++75cR4GH/gTHnV0MbAIuxYlXjwTK7nBsnMnS+V7W/17F76fak+Bu+VZ6X0n0edmHuLImkqzjNd1BLkFcKcTjN5/iq09ngZ4RIr2A7ObTuo018cuMyPdrjcuHyIY/is0vyas3aodu8EjI4U4y6D+f7Ov3S2gjy4hmEDu6UNx0p5CEvrCaKzcoN9pl9YX5KIEFbomtFibkFllmct4UWdYww+78F5skGYjoymBpt3SmjYyCF4mktqO0V8r3okdoxm1yeMI3feeyHF5V52rC+0qc0Jdf5w1IfHRYbx8TG6Mh544=
X-Microsoft-Antispam-PRVS: <TY1PR01MB092422AD08BD81DE86ABAF0BCA3F0@TY1PR01MB0924.jpnprd01.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(22074186197030)(5213294742642);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040130)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041072)(6043046); SRVR:TY1PR01MB0924; BCL:0; PCL:0; RULEID:; SRVR:TY1PR01MB0924;
X-Forefront-PRVS: 00003DBFE7
X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(24454002)(189002)(199003)(93886004)(31686004)(42186005)(77096005)(230700001)(101416001)(7736002)(7846002)(189998001)(305945005)(2950100001)(31696002)(8676002)(97736004)(221733001)(8666005)(50986999)(15975445007)(76176999)(54356999)(50466002)(47776003)(65806001)(65956001)(19580405001)(6116002)(86362001)(68736007)(4001350100001)(33646002)(64126003)(74482002)(106356001)(3480700004)(586003)(66066001)(105586002)(81166006)(81156014)(19580395003)(3846002)(83506001)(4326007)(92566002)(2906002)(23676002)(5001770100001)(65826006)(7059030)(3940600001); DIR:OUT; SFP:1102; SCL:1; SRVR:TY1PR01MB0924; H:[133.2.210.64]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:0; LANG:en;
Received-SPF: None (protection.outlook.com: it.aoyama.ac.jp does not designate permitted sender hosts)
X-Microsoft-Exchange-Diagnostics: 1;TY1PR01MB0924;23:7GhF2eXPSem2Lb9epL/nuImYQkziolf5AsAZtELyRmD2XvNKXIF0RryrmRJUu2At/hpHpNDuMkNSwUDVKnhBxQlt3KpCzUcgQeL0ULwpXAaJwv/H2n9xU2+XoyqMh4ULwdDXD/i+FqzBz+/GJDILLBH/WtG6mWFMGVevygFPsJLkD7DeZaKuvggyBbLnIUKo3oR89+orWjCYKethHVZ9DnRfrJWBYtuWV8GZ0PdhzTpyDC2m9J0RbIg8i9+6XYGBvru8IobHydP3ENV7Xu/tvMYqeASlrf5uezWh/hNkLR0A1xHAabn/o4j2btNRaxaDaQjtBeH/t8fH/vMr6wokIN/X1eAXh/k7MfY0I0qOK87u1jkSkfHgnnfE21DY5CMg8fPdnXWrwrF8DBhvovwDpPYBzSGTMIst8gareXc/gWK9en/YQfgxTKvRpfXudQP6tetUKGsrWewsSBDLZ4eK5WxkLjx2G8sf01gNQS+mbRroxHZuNbBlwWMZ1lbArDHXZlVfRd84XSVYexa/7L6pSetJI8Zu9BfErNrY+/f1z/QaDvZkzmvbf96L9gz4JCyHyeNa++MXwxqCELwFOOZf2Rel2+0aV9iy9NIlrUnqXcc+O21e/BD8nf4TmR3Pj3HmfJ1QNtuvsFFOVqqrUtJbiwn565pkg+Yxl6PG4EA2JYkD7DOhoMR88dnDwMdEtVP4NJ1JlMeacihbbSsQWO6JSEOlk6ibvzNZ8GOlikeGmUQqU3Xn7+VtbadiddnrP5ZgVjvGc6XY2oDl5YKbJml0HOy9AO2FysC4/W7qdF+klSUTWiPtqZnZFzNGXDPSGHPj9YTsg3Cws79VlGdskqtrAbJ6daA7+D1uE+miRc6HX0TP5NXiOqmdZJPNPVWyTyZRTH/SCYFgbxQfLJcUxCXJ29B+Z+tp2jMy1DRp1pmACG9RIN69nj4LusgabzoznV1XrtU/wGMsduk7ZLhw3mD58k/cW8l6qyDDKsZX0H1KYMOZB8cbR1/j87wN1iqB+za7kxCbKwHBUDC1OUjgRQul1tMeQZHA3LMMO/ly5MsumRUZCiYu5DXvxY7FdQiwvw34vXfofXck2PEbc1k35l2zNb02e6X4icUgpJnN07ji04jC2Psc/HOuGJd4bEiUqZfHaJRDXcAr3RgWEKzcSPAQR3zZqUVgPVj9R5isk/Wb3fLyasqvNe0PlpN4f4w/VIa9BqY5jLQA+UEuf9/IGkuimOeVTA3DzkXz2FPLm6+cZVHowERnTVFhcZS5hGKOFaXXaPYPLT9TmzNEDOD/3WSGtxA7Gv7rb8LKn1Q1EYDIaATjpNNDj9+EaAjgpBBjA2ZLy2sFs88o77H7yIBdd4IgGC8lvIQNhHAQQsyJHX9uxQTMPSWY48bTkIsM6SlJUh2o
X-Microsoft-Exchange-Diagnostics: 1; TY1PR01MB0924; 6:A1kgyN6E3nE2FS7g23YpdsjmO7usq50T6fIl35B17TXEFOE7TVvlU3/DsSVToFTmnTSjnzmHguVue/E/dwlGIH90k4AHOunYu2JsYw57+gHNIaCsLUPacDu0FJ9LxDE37R3gq/Q5fIQ1BfTLlCA8iGWH+8tyk1M4H9vcF16Yc/xArvr9jtKsz7TmT5HzBi+x5hRKCJNXL2tdmAKB9SppM8ORQeO9WRIYgRTB8cW43ASd5A2Gg1IpI+Y2WGjCb+tnCsbxBHKU4CH8KS0VBolmOkwfAeo0bJoEpUXvh3WrA/kJQMnay+sTYki+I5gnaNcS; 5:hZ4efvv147Vmwya9FKoUkzT0Xio+mjGa9raaPbyfrMXtbernybw2em9E9zQJp2dS0eVr68uFJTfGBoya7dugHrMRTl538F3p5JCpuk7xksmsKe3NTeojmPC3wRzjwTnullpZWAUPFIUkSzibUVtTVA==; 24:1CYHKZjCespsWkIiNsTarP4/FqhQJKjIPFldg2xe1rA5q2mE8JEFWruwMSXP+x1JXN6P6xV2KBPSsrjc4VNYSpHuSLO9kijcaMhRIfYvL8U=; 7:ZuiJUSBV7N1YDkl3DnWW2aLuvElq8TibJ6e/pFc1UIM87CMyAq0rKRJb7mCcaLieY5H541lP1e+eFGSYfBONZER7P3F55305lTd8wx8e+Ql1SYMbgDOV2sWqHTODO+gIeCnTKS4zZpT5dWD46tH9pymYzPekVBBDps/Y4EsSRF5quK2DdkBIFLkCVhgYiSiPXOPz7qDpULvpfvppVhfMZHhIuJOksMHprvuMwoYoINwcPfyU5pQ/cXVgxY9X9pxh
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: it.aoyama.ac.jp
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2016 10:32:32.0166 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1PR01MB0924
Received-SPF: pass client-ip=104.47.93.111; envelope-from=duerst@it.aoyama.ac.jp; helo=JPN01-TY1-obe.outbound.protection.outlook.com
X-W3C-Hub-Spam-Status: No, score=-6.3
X-W3C-Hub-Spam-Report: AWL=-0.417, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1bMYWM-0003Xf-Cq bfc7ef815a45a17bc1e92826b70f9f98
X-Original-To: ietf-http-wg@w3.org
Subject: Re: JSON headers
Archived-At: <http://www.w3.org/mid/dc8578f2-6c16-5b70-8080-9b8ad91c53c6@it.aoyama.ac.jp>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/31891
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 2016/07/11 14:55, Poul-Henning Kamp wrote:
> --------
> In message <1468211839.6746.67.camel@warmcat.com>, Andy Green writes:
>
>> Actually it'd be nice, and efficient, if we could assemble one header
>> payload in the library, pass it up to the application to copy or act
>> on, and then reuse the buffer, as we go through the incoming, possibly
>> fragmented, header content.
>
> Exactly.
>
> You also avoid the O(N^2) search operation to see if split headers
> happened in the first place.

There are many well-known data structures that avoid O(n^2).

[I personally might try something like gperf (perfect hashing, see 
https://savannah.gnu.org/projects/gperf/) on a wide collection of 
well-known headers, which would make search for these headers O(1), and 
overall O(n) for n headers. Linear search (which leads to O(n^2) for a 
series of headers) could still be used on less well known stuff.]

Regards,   Martin.