Re: HTTP/2 plaintext upgrade

Loïc Hoguin <essen@ninenines.eu> Thu, 26 January 2017 10:38 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 1D47812951F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 26 Jan 2017 02:38:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.119
X-Spam-Level:
X-Spam-Status: No, score=-10.119 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=-3.199, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 b83XgD4aqd2r for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 26 Jan 2017 02:38:45 -0800 (PST)
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 0239112951D for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 26 Jan 2017 02:38:45 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1cWhPG-0008Rz-2A for ietf-http-wg-dist@listhub.w3.org; Thu, 26 Jan 2017 10:35:54 +0000
Resent-Date: Thu, 26 Jan 2017 10:35:54 +0000
Resent-Message-Id: <E1cWhPG-0008Rz-2A@frink.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by frink.w3.org with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <essen@ninenines.eu>) id 1cWhPC-0008RE-9D for ietf-http-wg@listhub.w3.org; Thu, 26 Jan 2017 10:35:50 +0000
Received: from mout.kundenserver.de ([217.72.192.75]) by mimas.w3.org with esmtps (TLS1.2:DHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <essen@ninenines.eu>) id 1cWhP6-0002hF-4k for ietf-http-wg@w3.org; Thu, 26 Jan 2017 10:35:44 +0000
Received: from [192.168.1.28] ([176.149.24.230]) by mrelayeu.kundenserver.de (mreue103 [212.227.15.183]) with ESMTPSA (Nemesis) id 0MGoe9-1cjdp44AXh-00DaVK; Thu, 26 Jan 2017 11:35:16 +0100
To: Cory Benfield <cory@lukasa.co.uk>, HTTP Working Group <ietf-http-wg@w3.org>
References: <AC89F2FD-F183-4B17-B528-60821D2D4EB8@lukasa.co.uk>
From: Loïc Hoguin <essen@ninenines.eu>
Organization: Nine Nines
Message-ID: <111bbf48-dc11-9f8a-60b0-5f28810c318f@ninenines.eu>
Date: Thu, 26 Jan 2017 11:35:14 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.0
MIME-Version: 1.0
In-Reply-To: <AC89F2FD-F183-4B17-B528-60821D2D4EB8@lukasa.co.uk>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Provags-ID: V03:K0:eZ8q6yjCuQDi+EDUyYWXypjxsslLXHkHKd1rcfivKwM0nTNiDiE GDUrwYRCBX8nMJhDIyQSHWt+d+9IqIJhAgL0sOiir2IzPUArJ9yhJVwbplHY4VKUYVAO5xn Ds6IxhXk88iVGAvV1Zu/enJ6VVOWL2sWgsTiJhkcKGoGg55uRYIYMJ5+5VFvZ2b/r3xGQCP r93WNQivdui+5VqyLmT3g==
X-UI-Out-Filterresults: notjunk:1;V01:K0:Zg9Co7pvPgI=:ace7eW0VxZuo5RtC21PTQD lUUgbgaKtY/DFlYAVxkaytRqnFqZlgAyQqXha5QCwKJzTiX2/0QR3Wj15jz8dh36IsSoxNj2I aP36pKRkLqzPjSanmcng1oD9BBCVCTszK8lrk9k3ihRFj5SOdgC1WEuT/s1azwEs6zDVHJIyM Si82LlbSNY5KdBmG/YO5JnIhmDkfl2egTQvgavT53q7S8/+LflL5ba5js1AjTR6nkRW1PDcC9 B6A5EOJFTwxXuUieQQmoU78QZHUyktvDn8ZrLFh9wdU65f+92wxlPi5CQHvYC/L1hh3wH0obV +KEeNrUxBeoaHd6h0wGj0jcKQXmGd+454Glh0R38/bXjtNI0J6inCGeEkB7QTbsqunfs/bWfc OabwZPWpjIFOWyjZTPxFmgoSMF0InLR9iKBnRMX29A+th874u7wgfH+d/I5RB36tOTOCvT3Ou 3oeOLPL+dgnUqcpTi5nYr3V9+Y71D0YSLdTAe83lzB29QOmQ9yMXA6v+Rad0Iq15vy81nKVBl 0kJwwUa03FTsSOKynlXawWVKE1WOjmZkXodA7Ps1KDMDzzjFToUIdFzzphZkjEaTa2qcWYINd 02EXkw4zSBcefgd6sF4T7m2srS2Kk55w/Z7ISmzC93szTNlDm12gyW0tAqnnK8C3pZrfTe13r kxxAqUaeK2XzH0a+wi7oF2vNYOiQl0WIPl5hM65xaWf4WT7fYtB+Sq5GupQnhhkX76cjarbuF OOCKYJxjcHa+Vv72
Received-SPF: none client-ip=217.72.192.75; envelope-from=essen@ninenines.eu; helo=mout.kundenserver.de
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=1.578, BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-1.156, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1cWhP6-0002hF-4k d3bf549554c9b98983e803c4d937f17f
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP/2 plaintext upgrade
Archived-At: <http://www.w3.org/mid/111bbf48-dc11-9f8a-60b0-5f28810c318f@ninenines.eu>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/33383
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>

Hello,

On 01/26/2017 11:13 AM, Cory Benfield wrote:
> I’ve got a question about HTTP/2 plaintext upgrade. RFC 7540 Section 3.2.1 says about the HTTP2-Settings header field:
>
>> The content of the HTTP2-Settings header field is the payload of a SETTINGS frame
>
> My initial implementation provided an entire SETTINGS frame in the HTTP2-Settings field, but a contributor has pointed out that the word “payload” may mean that only the body of the SETTINGS frame should be provided. It’s not really entirely clear to me in the text which I should do, and there are no textual examples either, so I’m genuinely not sure.
>
> Can I get an idea of what other implementers have done here?

I understood "payload" as the frame payload defined in section 4.1:

    All frames begin with a fixed 9-octet header followed by a variable-
    length payload.

     +-----------------------------------------------+
     |                 Length (24)                   |
     +---------------+---------------+---------------+
     |   Type (8)    |   Flags (8)   |
     +-+-------------+---------------+-------------------------------+
     |R|                 Stream Identifier (31)                      |
     +=+=============================================================+
     |                   Frame Payload (0...)                      ...
     +---------------------------------------------------------------+

I have however only used this with a client I implemented myself.

-- 
Loïc Hoguin
https://ninenines.eu