Re: HTTP 2.0 "Upgrade" flow

Martin Thomson <martin.thomson@gmail.com> Wed, 17 April 2013 22:01 UTC

Return-Path: <ietf-http-wg-request@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 2541C1F0D12 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 17 Apr 2013 15:01:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.699
X-Spam-Level:
X-Spam-Status: No, score=-8.699 tagged_above=-999 required=5 tests=[AWL=1.900, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fR6rFjTrxX89 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 17 Apr 2013 15:01:34 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 601301F0D10 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 17 Apr 2013 15:01:34 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1USaPl-00046w-Nx for ietf-http-wg-dist@listhub.w3.org; Wed, 17 Apr 2013 22:01:17 +0000
Resent-Date: Wed, 17 Apr 2013 22:01:17 +0000
Resent-Message-Id: <E1USaPl-00046w-Nx@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1USaPi-00046F-M5 for ietf-http-wg@listhub.w3.org; Wed, 17 Apr 2013 22:01:14 +0000
Received: from mail-wg0-f51.google.com ([74.125.82.51]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1USaPh-0002OJ-QG for ietf-http-wg@w3.org; Wed, 17 Apr 2013 22:01:14 +0000
Received: by mail-wg0-f51.google.com with SMTP id b13so2093162wgh.6 for <ietf-http-wg@w3.org>; Wed, 17 Apr 2013 15:00:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=PifTVO+esyWrFLp/i936NborGGtlM7zUDl8a3Za+y+M=; b=n+fty8FXFZBPYo/v0Zx8YNzaHV1QJ7AA8IlEGkI6dmQpwAk3HWXsN+MB4YZHCbGyFn vtRcaB/Yxi/cCE5DDdMzwvqgNNCeuGopQQmIheDoXbnGtSUTIm7yAREyq+qELbXmMNc+ nJtEzCkf/8c8R7fvWzIMPKeGY0MgnoO7bGbUTxROzM19sAhtkRgpUrE+GS1oAX+XhUD7 Pkwc7SfD2JpHdjmNoWh/shKdrXhPj5+bH424QJRivZ4M7U9cesQoyan73z2nt1wivSC3 P1crRMn7E+QsLyS4FMCY/YYd/BgT70NJqFUgun1NBdLYXJ5hZ6O+wtHme2ZvN22hoxt/ t/Zw==
MIME-Version: 1.0
X-Received: by 10.194.103.72 with SMTP id fu8mr14293282wjb.42.1366236047536; Wed, 17 Apr 2013 15:00:47 -0700 (PDT)
Received: by 10.194.28.195 with HTTP; Wed, 17 Apr 2013 15:00:47 -0700 (PDT)
In-Reply-To: <em7d6e997d-d66e-46d2-a0ac-ba9b205a2a99@bombed>
References: <CABkgnnVq27RCHs=hCQTr97urQc54pHdMPKQ6+WXwHYxdA_tnkA@mail.gmail.com> <em7d6e997d-d66e-46d2-a0ac-ba9b205a2a99@bombed>
Date: Wed, 17 Apr 2013 15:00:47 -0700
Message-ID: <CABkgnnV-488_Y_ytuFVkG9NuT0PnBeYS38z1BTQ_wVLT-e-12w@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: "Adrien W. de Croy" <adrien@qbik.com>
Cc: Gabriel Montenegro <Gabriel.Montenegro@microsoft.com>, Mark Nottingham <mnot@mnot.net>, Ilari Liusvaara <ilari.liusvaara@elisanet.fi>, Ilya Grigorik <ilya@igvita.com>, "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Content-Type: text/plain; charset="UTF-8"
Received-SPF: pass client-ip=74.125.82.51; envelope-from=martin.thomson@gmail.com; helo=mail-wg0-f51.google.com
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-2.618, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1USaPh-0002OJ-QG f978fec4621d965a1c40dcc694feeb1b
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP 2.0 "Upgrade" flow
Archived-At: <http://www.w3.org/mid/CABkgnnV-488_Y_ytuFVkG9NuT0PnBeYS38z1BTQ_wVLT-e-12w@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17307
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>

So you intend to make client SETTINGS available to the server prior to
the server commencing transmission.  This is the essence of what
Gabriel intends with his known state proposal.  He is concerned by the
asymmetry of the exchange when Upgrade is involved (as opposed to the
TLS session startup).  You should talk to Gabriel.

On 17 April 2013 14:56, Adrien W. de Croy <adrien@qbik.com> wrote:
>
> I think it would need to go in as a header.  Maybe even as an attribute to
> the Upgrade?  Not sure if that supports such things.  E.g.
>
> GET /bob.txt HTTP/1.1
> Host: somewhere.co.nz
> Upgrade: HTTP/2.0 ; session=[......]
>
> so that the server can respond with the resource in any case.
>
> Adding a RTT to all HTTP 2.0 connections I thought had been decided was a
> non-starter.  Or compared to TLS setup phase + NPN maybe it's no worse.
>
>
> Adrien
>
>
> ------ Original Message ------
> From: "Martin Thomson" <martin.thomson@gmail.com>
> To: "Adrien W. de Croy" <adrien@qbik.com>
> Cc: "Gabriel Montenegro" <Gabriel.Montenegro@microsoft.com>; "Mark
> Nottingham" <mnot@mnot.net>; "Ilari Liusvaara"
> <ilari.liusvaara@elisanet.fi>; "Ilya Grigorik" <ilya@igvita.com>;
> "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
> Sent: 18/04/2013 9:51:47 a.m.
> Subject: Re: HTTP 2.0 "Upgrade" flow
>>
>> It's possible that the client could pipeline the session header, but
>>
>> that does stand a chance of being subsumed into the initial request.
>> I expect packet-based hacks.
>>
>> On 17 April 2013 14:42, Adrien W. de Croy <adrien@qbik.com> wrote:
>>>
>>>
>>>  My understanding was that we would not be sacrificing the first request
>>> due
>>>  to a requirement to upgrade.
>>>
>>>  In order for the server to send an actual response, if it needs the
>>> client
>>>  session header, this should be sent in the initial request which
>>> includes
>>>  the upgrade.
>>>
>>>  Otherwise we just added a RTT
>>>
>>>
>>>  Adrien
>>>
>>>
>>>  ------ Original Message ------
>>>  From: "Gabriel Montenegro" <Gabriel.Montenegro@microsoft.com>
>>>  To: "Mark Nottingham" <mnot@mnot.net>
>>>  Cc: "Ilari Liusvaara" <ilari.liusvaara@elisanet.fi>; "Ilya Grigorik"
>>>  <ilya@igvita.com>; "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
>>>  Sent: 18/04/2013 5:02:01 a.m.
>>>  Subject: RE: HTTP 2.0 "Upgrade" flow
>>>>>
>>>>>
>>>>>   Personally, I'm not thrilled with how the server session header is
>>>>>  conflated
>>>>>   with a SETTINGS frame... if we're going to require that the server
>>>>> send
>>>>>  a
>>>>>   SETTINGS frame first (which is fine), let's just come out and say
>>>>> that,
>>>>>  rather
>>>>>   than making it a side effect of requiring a (largely fictional)
>>>>> server
>>>>>  session
>>>>>   header.
>>>>
>>>>
>>>>
>>>>  The spec already says that in section 3.8.4 that a SETTINGS frame MUST
>>>> be
>>>>  the first frame sent by either party in a new session.
>>>>
>>>>  So that part is fine. If we wish to say that a server has no session
>>>>  header, that would be fine.
>>>>
>>>>  As for " As proposed by Gabriel, SETTINGS (or equivalent) would/could
>>>> be
>>>>  carried in the headers in the UPGRADE request."
>>>>
>>>>  For the record, I did not say that in the Upgrade scenario the client
>>>>  session header is sent in HTTP/1.1 along with the Upgrade request. My
>>>>  understanding is that the Upgrade request goes without the client
>>>> session
>>>>  header. As we have discussed in Orlando, we could add some HTTP/1.1
>>>> headers
>>>>  to address the known state by conveying *some* of the settings (only
>>>> those
>>>>  absolutely necessary to achieve known initial state). But that's a
>>>> separate
>>>>  proposal/discussion from this thread.
>>>>
>>>>  At any rate, the server sends back the 101, and begins its HTTP/2.0
>>>>  traffic by sending its SETTINGS frame and its response frames, and the
>>>>  client upon receiving the 101, and only then, begins sending HTTP/2.0
>>>>  traffic starting with its client session header (which includes the
>>>> magic
>>>>  sequence and the client SETTINGS frame).
>>>>
>>>>
>>>
>>>
>