Re: HTTP 2.0 "Upgrade" flow

Willy Tarreau <w@1wt.eu> Wed, 17 April 2013 06:29 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 0665F21F972A for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 16 Apr 2013 23:29:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[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 JptoHAeb5UuF for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 16 Apr 2013 23:29:43 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 82D2C21F9729 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 16 Apr 2013 23:29:43 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1USLqs-0004aL-7b for ietf-http-wg-dist@listhub.w3.org; Wed, 17 Apr 2013 06:28:18 +0000
Resent-Date: Wed, 17 Apr 2013 06:28:18 +0000
Resent-Message-Id: <E1USLqs-0004aL-7b@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <w@1wt.eu>) id 1USLqq-0004ZU-3p for ietf-http-wg@listhub.w3.org; Wed, 17 Apr 2013 06:28:16 +0000
Received: from 1wt.eu ([62.212.114.60]) by lisa.w3.org with esmtp (Exim 4.72) (envelope-from <w@1wt.eu>) id 1USLqp-0005RI-8W for ietf-http-wg@w3.org; Wed, 17 Apr 2013 06:28:16 +0000
Received: (from willy@localhost) by mail.home.local (8.14.4/8.14.4/Submit) id r3H6RGMC007481; Wed, 17 Apr 2013 08:27:16 +0200
Date: Wed, 17 Apr 2013 08:27:16 +0200
From: Willy Tarreau <w@1wt.eu>
To: Roberto Peon <grmocg@gmail.com>
Cc: "Adrien W. de Croy" <adrien@qbik.com>, Ilya Grigorik <ilya@igvita.com>, Gabriel Montenegro <Gabriel.Montenegro@microsoft.com>, Ilari Liusvaara <ilari.liusvaara@elisanet.fi>, "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Message-ID: <20130417062716.GM5516@1wt.eu>
References: <CAKRe7JGk2496QPTZ7POqZtA4e5Gb5zs3BfJMdKveYnrK+LDe3g@mail.gmail.com> <em352963fa-7040-4466-8bd5-5e480f58e35b@bombed> <CAP+FsNcrChWevfdwNgr0e=GH5xKqLYmTjRkffrdM+HvXFtwL+Q@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CAP+FsNcrChWevfdwNgr0e=GH5xKqLYmTjRkffrdM+HvXFtwL+Q@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
Received-SPF: pass client-ip=62.212.114.60; envelope-from=w@1wt.eu; helo=1wt.eu
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-2.709, RP_MATCHES_RCVD=-0.702, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1USLqp-0005RI-8W d1c9bc55aa5eb3d471a31db2d71e29c9
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP 2.0 "Upgrade" flow
Archived-At: <http://www.w3.org/mid/20130417062716.GM5516@1wt.eu>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17284
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>

Hi Roberto,

On Tue, Apr 16, 2013 at 10:18:54PM -0700, Roberto Peon wrote:
> As proposed by Gabriel, SETTINGS (or equivalent) would/could be carried in
> the headers in the UPGRADE request.
> However, this isn't enough by itself-- you still want to cause transparent
> proxies to barf when you start speaking HTTP/2 if they're not going to be
> able to handle it.

However if the client knows from a previous connection that HTTP/2 is
supported as an upgrade along the path, it can safely send its settings
next to the headers, just as some browsers do with CONNECT requests sent to
proxies. If a transparent proxy fails on this, it means it tried to parse
the data following the headers as a new HTTP request, which means it's not
compatible with the Upgrade mechanism anyway.

Willy