Re: [hybi] Fwd: New Version Notification for draft-mcmanus-httpbis-h2-websockets-01.txt

Takeshi Yoshino <tyoshino@google.com> Fri, 10 November 2017 18:10 UTC

Return-Path: <tyoshino@google.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5872A12ECC6 for <hybi@ietfa.amsl.com>; Fri, 10 Nov 2017 10:10:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 6bWhFm-EOuDr for <hybi@ietfa.amsl.com>; Fri, 10 Nov 2017 10:10:32 -0800 (PST)
Received: from mail-qt0-x231.google.com (mail-qt0-x231.google.com [IPv6:2607:f8b0:400d:c0d::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AC24212ECC4 for <hybi@ietf.org>; Fri, 10 Nov 2017 10:10:32 -0800 (PST)
Received: by mail-qt0-x231.google.com with SMTP id p44so2389054qtj.6 for <hybi@ietf.org>; Fri, 10 Nov 2017 10:10:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=igNI4fUO11seh6nOh4gji1DWvd88pdAv+7BMWkRoaJc=; b=OHTuX4jCViJcDsrCnvRmLUIPWHO7JQzqm1d6C/o02U8C0RBg1ytR62o8+StiUzWi/S V8S3GFfeZm9aXymO7cs37pZP2GN5q6Gmj+PoYET0LQ/xFzppgCKp+XG/feDJX8AjRIm7 BeNkZElo3Mo1iBRKgOkXTt4IhZdwPD31pAt376nHCHzeOCBOqFEDQJTbf1UCTm+IkTse PW6VhrxG21gSmijTV6HI/7gXi6gFkWx2IBuK9L6vDSLtdDVoXD/jwD8vd1t22pvZq0h7 +Qt/ZvwijkPxzXfP3YDG31+GNj1/iDw9Q/55JP8lFLVXcNAy1ZFGT241zxhtCEhCZeE2 yNKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=igNI4fUO11seh6nOh4gji1DWvd88pdAv+7BMWkRoaJc=; b=G8VlCZRWgsAjLtKf9OrmlC/oKuiGQsb75ttx3S6fnM4Q3TM749OLinslPLTj1IkwNO 03fJJ1Kc9kpC1ov8+260rUokMVEBI9+Y2KwNx9OVUkgbsO+qJjQw5HzT78RF7fDcpb5x Q5mtJaw51wtEqM0ztxqL+3OQjNoEAT80jmVm3RmTUtBZoJwh7r41kCvs5iuwbnHhSBr5 uuB91pJsQZV/5cpa/iHlT1Fal411Hvr0zSx73IIJ41o/u53IWyk4fcnBiVgRBYRY+IMH ypDCS50/M8Rpz9q8gDz4jnT6B6oRU+/PiW51BOe83+j7GJPdgAKQagxXFKOuqrOJmjJD 7Hcw==
X-Gm-Message-State: AJaThX5H6nCYH/zKyuP7SBP9N6ZLMkXrXW7fdXeYNGnXQZtJIPCljBPU GFbQpEWacw5TEn+eOtyz+tx0QMzrtQaVAWBKc50vYQ==
X-Google-Smtp-Source: AGs4zMbUdqIH3XIt10UzmgkPvpbsVNufD2VumR9iaMXVKz/0i6EITlVQfN2YRfyKoTBmiOA9r4lzjLGhLfJHmpaN5BA=
X-Received: by 10.237.42.27 with SMTP id c27mr2094006qtd.282.1510337431630; Fri, 10 Nov 2017 10:10:31 -0800 (PST)
MIME-Version: 1.0
Received: by 10.12.149.206 with HTTP; Fri, 10 Nov 2017 10:10:10 -0800 (PST)
In-Reply-To: <201711101751.vAAHpqHC031731@shell.siilo.fmi.fi>
References: <CAD3-0rPPGx4k+ksk-QDnNhnescfPHiYSJ-z2AQeMR2=khaO_HQ@mail.gmail.com> <20171110061456.1349EB532F@welho-filter2.welho.com> <CANatvzya831tQdWsjpiwdF537jVqZYCQpi3aFHLdQoGjShcCRw@mail.gmail.com> <CAH9hSJapY-KxFwMzGp4vmNcZuu5R8gJ+es4Rs1Le8G2CWPLjsQ@mail.gmail.com> <201711101751.vAAHpqHC031731@shell.siilo.fmi.fi>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Sat, 11 Nov 2017 03:10:10 +0900
Message-ID: <CAH9hSJZGN-VLLGFs46HHZSV+sWbAeh+sNC2sck-OQbi1GGK+ZQ@mail.gmail.com>
To: Kari Hurtta <hurtta-ietf@elmme-mailer.org>
Cc: Kazuho Oku <kazuhooku@gmail.com>, hybi <hybi@ietf.org>, Patrick McManus <pmcmanus@mozilla.com>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="001a114448641b1ac4055da4d600"
Archived-At: <https://mailarchive.ietf.org/arch/msg/hybi/GQAE8G2yvlya_-Sf0w_1tEWJXHI>
Subject: Re: [hybi] Fwd: New Version Notification for draft-mcmanus-httpbis-h2-websockets-01.txt
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hybi/>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Nov 2017 18:10:34 -0000

On Sat, Nov 11, 2017 at 2:51 AM, Kari Hurtta <hurtta-ietf@elmme-mailer.org>;
wrote:

> SETTINGS   ENABLE_UPGRADE (or ENABLE_CONNECT_PROTOCOL) from server
> end of connection to client end of connection tells on that case
>
> that server end of connection understand
>         :upgrade
> pseudo header.
>
> It tells nothing about that what is behind of that server end of
> connection.
>
> Only after request is sent, http response tells if that authority
> and path supporting that upgrade. Error is reported as http status code.
>
> I see that reverse proxy can send SETTINGS   ENABLE_UPGRADE (or
> ENABLE_CONNECT_PROTOCOL)
> even when it does not konw if next hop supports that. Support
> of next hop or origin server is reported by when that protocol
> is triedm failure is reported on http status code.
>

Ideally I want to allow a browser to know as much as possible info about
the capability of the path with less speculative attempts, for less
fallback. So, I investigated this situation and explored how much info we
could give to the SETTINGS ENABLE_UPGRADE (or ENABLE_CONNECT_PROTOCOL).

But yes, the tool, "SETTINGS", we have is only about the peer end of a
connection. I think it does make sense to just follow that principle. We
can build the opt-in mechanism by that for each hop, and then, proxies are
still allowed to emit errors on capability mismatch between connections, as
you said.

We could design error code, fallback, etc. for this kind of cases if it
turns out we really need to take care of. For the initial implementation,
maybe we could just let browsers give up when a connection attempt fails on
a connection with ENABLE_UPGRADE (or ENABLE_CONNECT_PROTOCOL) announced.