Re: New Version Notification for draft-momoka-httpbis-settings-enable-websockets-00.txt

Lucas Pardue <lucaspardue.24.7@gmail.com> Thu, 19 January 2023 00:34 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 05CC4C1522DB for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 18 Jan 2023 16:34:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.8
X-Spam-Level:
X-Spam-Status: No, score=-4.8 tagged_above=-999 required=5 tests=[AD_PREFS=0.25, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MOwwVT3T1ZTt for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 18 Jan 2023 16:34:23 -0800 (PST)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 118A7C14F72D for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 18 Jan 2023 16:34:22 -0800 (PST)
Received: from lists by lyra.w3.org with local (Exim 4.94.2) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1pIIsM-002VwT-EG for ietf-http-wg-dist@listhub.w3.org; Thu, 19 Jan 2023 00:33:54 +0000
Resent-Date: Thu, 19 Jan 2023 00:33:54 +0000
Resent-Message-Id: <E1pIIsM-002VwT-EG@lyra.w3.org>
Received: from titan.w3.org ([128.30.52.76]) by lyra.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <lucaspardue.24.7@gmail.com>) id 1pIIsK-002VvA-Kn for ietf-http-wg@listhub.w3.org; Thu, 19 Jan 2023 00:33:52 +0000
Received: from mail-oa1-x35.google.com ([2001:4860:4864:20::35]) by titan.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <lucaspardue.24.7@gmail.com>) id 1pIIsH-001yiP-0i for ietf-http-wg@w3.org; Thu, 19 Jan 2023 00:33:52 +0000
Received: by mail-oa1-x35.google.com with SMTP id 586e51a60fabf-1433ef3b61fso843109fac.10 for <ietf-http-wg@w3.org>; Wed, 18 Jan 2023 16:33:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ILpDPPRgGW8mqN9hNSzjSm0hEwfz3Gd+npuFn+DCoFA=; b=AXK8ZQl1kzlIQwWGWAwlIxzKzjD4dfIi8+exvpRys9eQFUITgDODNCkWXIO+kLhCSC 9jvlB5zE5ZKJBzXarEEC8Zrcp33+zUs0IBBp9DbXJKQZ6FWFERLwsDN9sLJ9itF9VN/A G2hbjhYePzzhTBI6jx1iOjE+WSxIqbWwlyVyUDaWX46Oohq3503ybEMPPqgdjm7BeHBy 6x/4TiGXHAYX2F311dlSzH3XE2gGc3YzF6GOxpEe/pErWlzcji8UlVu19w1m6mpyYYEp X0TuHB3PeIdAtArtVopgmMnpQ5xtrCZ9ZUnuabD9Nj43Shl1fEqNH+jSZtg/VehKGzTT TUuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ILpDPPRgGW8mqN9hNSzjSm0hEwfz3Gd+npuFn+DCoFA=; b=10ZJr12Pd3bdBxWIY93ffjYF+fEbMsOoy40q5dTyx0EAK40dihSocrY5gARZ+7AJLc eH91Jwb4nMD8u2xlzeRRBSq73+lpa/trG4ucCgo6OO+FwyS7EVsUqWKXanNVYXQlOo4p BoCf/MpymhqqmYJPEhAL4zHU3L320JinnfCYqJkDVBv6Opqxj2kz40bNsBmzSKh3/NV4 IGc/T0WUM514DB6X2NGxBIxspG0Upd1yi/eCiNjsQl/3WCAaUpsNM+0+Uwd8hixtr2KT /GoMqXF8zl4mLDG6Y+llE/TTWNZWF8/qGrylxAIuwNU7raIE5VWNA5+lv2DeezYjQAkI Q6kw==
X-Gm-Message-State: AFqh2kqC+QBuBHijJqlZI8jup563UJtThgJ+K7HWCt2yVyP2gfhmyqMa PtZHz5c5SH+7aB543zcvIsjq4Vm9VQ6jJ1X7BqE=
X-Google-Smtp-Source: AMrXdXtF2uD1HmrHiUaggC9wvXOEXK3YTnatr5NUdfcDhrsCHKfy+HeKytH7XUxBtH/BSGCUqGZgBHSQqmxUdYOsBlE=
X-Received: by 2002:a05:6870:6605:b0:14f:bdc3:ab23 with SMTP id gf5-20020a056870660500b0014fbdc3ab23mr891766oab.240.1674088419969; Wed, 18 Jan 2023 16:33:39 -0800 (PST)
MIME-Version: 1.0
References: <167308384752.44075.8810233925919235602@ietfa.amsl.com> <CAD9w2qbAGXsskcDO0Ogo6htiEj5qqT8+_RLVMuZ4ZNiepEid_Q@mail.gmail.com> <CAHbrMsDSFRHQhciZM6PYNL=qoWAK8N-g+Pd39NngBKxag62wpA@mail.gmail.com> <CALGR9oYmYid=0pMW5tCLpE1GFdz1hgTL0Vy6HDjYBSNZC1WP3A@mail.gmail.com> <CAHbrMsDKrDf7v4DLHnHUnRCK2ABZ_ZMfGy4_2PAz+g=2RhDNHQ@mail.gmail.com>
In-Reply-To: <CAHbrMsDKrDf7v4DLHnHUnRCK2ABZ_ZMfGy4_2PAz+g=2RhDNHQ@mail.gmail.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Thu, 19 Jan 2023 00:33:28 +0000
Message-ID: <CALGR9obABt+cL2Cafkt_x9fRvu9BTD+tZmPGF7-SaDeaNYvBhA@mail.gmail.com>
To: Ben Schwartz <bemasc@google.com>
Cc: Momoka Yamamoto <momoka.my6@gmail.com>, ietf-http-wg@w3.org
Content-Type: multipart/alternative; boundary="000000000000984f0205f29315ed"
Received-SPF: pass client-ip=2001:4860:4864:20::35; envelope-from=lucaspardue.24.7@gmail.com; helo=mail-oa1-x35.google.com
X-W3C-Hub-DKIM-Status: validation passed: (address=lucaspardue.24.7@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-4.6
X-W3C-Hub-Spam-Report: AD_PREFS=0.25, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1pIIsH-001yiP-0i 575206eca4395b8266f7d87c6829e0eb
X-Original-To: ietf-http-wg@w3.org
Subject: Re: New Version Notification for draft-momoka-httpbis-settings-enable-websockets-00.txt
Archived-At: <https://www.w3.org/mid/CALGR9obABt+cL2Cafkt_x9fRvu9BTD+tZmPGF7-SaDeaNYvBhA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/40687
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: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hey Ben,

On Wed, Jan 18, 2023 at 11:59 PM Ben Schwartz <bemasc@google.com> wrote:

> On Wed, Jan 18, 2023 at 12:14 PM Lucas Pardue <lucaspardue.24.7@gmail.com>
> wrote:
> ...
>
>> When WebSockets over H2 was written, I might have agreed that
>> SETTINGS_ENABLE_CONNECT_PROTOCOL is a signal the server supports WebSockets
>> over H2.
>>
>
> (I don't think it ever meant that.)
>
>
>> But now we're adding multiple :protocol values into the mix with MASQUE
>> and WebTransport. Just because a page loaded over my infrastructure
>> includes a wss::// URL, it doesn't mean my infrastructure supports it for
>> all HTTP versions.
>>
>
> Are you sure?  I think it does.  Or rather, if your infrastructure does
> not support WebSocket for all its HTTP versions, then wss:// URLs that
> point to your infrastructure are not valid.
>

Imagine a CDN that is responsible for infrastructure but not content
(pages). For many years pages have been served over HTTP/2 or HTTP/3
without advertising SETTINGS_ENABLE_CONNECT_PROTOCOL and wss://  scheme -
everything has worked fine. Clients used HTTP/1.1 bootstrapped websockets.
Even is a server offered the setting, a client might not support that
feature and would act on wss:// by opening a HTTP/1.1 bootstrapped
connection.

Now if I want to deploy e.g. a CONNECT-UDP proxy on that CDN
infrastructure, then I have to support WebSocket over HTTP/2 or HTTP/3?
That seems well beyond the extent of how RFC 8441 was written.

In this scenario, removing the wss:// from the content isn't an option, it
will just break the purpose of the page.


>
>
>> For instance, I might theoretically like to roll out support for
>> WebTransport and never roll out WebSockets.
>>
>
> That's fine, and has nothing to do with this.  However, you can't roll out
> WebTransport only on HTTP/X, and not on HTTP/Y, if your system offers both
> HTTP/X and HTTP/Y.  You have to roll it out on all versions before
> customers are allowed to use it.
>

> Whether a request can be serviced is a property of the target resource. So
>> if I had a server that understood CONNECT but wanted to reject :protocol:
>> websocket, then perhaps returning a 405 Method Not Allowed would be more
>> appropriate than a 501.
>>
>
> I don't think this will work.  Regardless of how the error is reported
> (via SETTINGS or via an HTTP error code), there is no requirement (e.g. in
> RFC 8441) that clients respond to an error by retrying a WebSocket setup
> using a different HTTP version, even if some clients today have some degree
> of fallback behavior.
>
> In the general case, this would be sheer madness.  For example, if I try
> WebTransport over HTTP/2, but the server says
> SETTINGS_ENABLE_CONNECT_PROTOCOL is not supported, should I retry it over
> HTTP/1.1 or  HTTP/3?
>

I mean that seems like a problem that WebTransport should design for. AFAIK
there is no WebTransport mapping to HTTP/1.1. Again, I can't control the
content, so if somebody includes JavaScript that uses the WebTransport API,
and has configured the CDN to disable HTTP/2 or HTTP/3 support, then
there's several possible failure scenarios. Even if the CDN supports
CONNECT_PROTOCOL on all versions and all versions are enable, if the client
attempts to use WebTransport over HTTP/3 and the local network is blocking
UDP, what is the fallback logic there?

This all gets a lot more complicated if websockets or webtransport are run
on third-party domains. And it also gets complicatedif we consider
multi-CDN and the mess that Alt-Svc is making there.

For a single orign that is running all of its own infratructure I might
agree that it should be self-consistent. But adding intermediaries into the
mix creates separation of concerns and responsibility that make it a lot
harder.

Cheers,
Lucas