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

Wenbo Zhu <wenboz@google.com> Wed, 18 January 2023 17:47 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 DBAF4C14F721 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 18 Jan 2023 09:47:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.249
X-Spam-Level:
X-Spam-Status: No, score=-15.249 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, 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_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001, USER_IN_DEF_DKIM_WL=-7.5] 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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lrtYuExi6Ger for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 18 Jan 2023 09:47:56 -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 EC83FC14E513 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 18 Jan 2023 09:47:55 -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 1pICX6-001UgH-I8 for ietf-http-wg-dist@listhub.w3.org; Wed, 18 Jan 2023 17:47:32 +0000
Resent-Date: Wed, 18 Jan 2023 17:47:32 +0000
Resent-Message-Id: <E1pICX6-001UgH-I8@lyra.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by lyra.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <wenboz@google.com>) id 1pICX4-001Uez-RT for ietf-http-wg@listhub.w3.org; Wed, 18 Jan 2023 17:47:30 +0000
Received: from mail-yw1-x112f.google.com ([2607:f8b0:4864:20::112f]) by mimas.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <wenboz@google.com>) id 1pICX3-00BnVB-2I for ietf-http-wg@w3.org; Wed, 18 Jan 2023 17:47:30 +0000
Received: by mail-yw1-x112f.google.com with SMTP id 00721157ae682-4d59d518505so309850827b3.1 for <ietf-http-wg@w3.org>; Wed, 18 Jan 2023 09:47:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.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=e8NEt7JrIcs9ac7FlpDGZhUkZjK3OZb81hIMigME9VQ=; b=YAEw0jTIXlPjB2d+b5nKBpIEty368r6ywD4oaPHy3xeIfgUq+rsdqa1ZzTCOgTly8b TE37GfyFuoJvZOa+m+Uvq4s9pwnhBfXF/32/AtRlBQxuAPODRDqkOhXiDNnfaOFzVefN zhhUF3vCC7bDrJupP2awiisxHzLj5PyycbAZj7KDxlsdAoPfZjpqKxg6kiyU2KR5oT5n iaQ3V/5N3zVNS4FHHxv4ThC8SnlI1wl69HqWLJChQaHrxYa4IglB3tYnhAPtB8OMwQ1z OZEe5Fh5ccSpCudQHotQSC140lK0qesp1C/Lpz7uuSCmDemD7QTAeFQWsX7sPcbLq4CI oUrw==
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=e8NEt7JrIcs9ac7FlpDGZhUkZjK3OZb81hIMigME9VQ=; b=608G0XUM//9u6KxLv9twrld2WziEivJSISmPjJuy91csxmyPZGtKGb68Qgmrn8Ti4a JGAcoeG9A60NFjffSm/3kQetwhdFZU0exqm6f4A1xs5syc94uGFiUsckgHUoLyqsgH7W qofzy63traSZHNTioDfQdtOTKCvzd8lt2y7v+13SjwwtHjKwQJd6wP4gR2KxcWrE1uni HwQVHJ55mmrD+EryZEa9Bme9o6OVEOscw6gQi5MAh4+YRnJrm6XgPwY9EaysjACWWap3 tEEf8wK5EPWGxTWXrWt+Yt1DopoSIfAnkAfC/fHUj6YdzvuJdzks9doYpkGR36gPPtFt LNBQ==
X-Gm-Message-State: AFqh2kpJTddZiTrasrDyB7bAhQGTgexItXJ1nWME4TSUgLDt1v7dizp5 lFXBTeGIz5dyuUqPVGvULsO5flRPyNUFmTJCGXVseQ==
X-Google-Smtp-Source: AMrXdXshZ6riGQhIYF01jSgf6XqMEPaZEda3glbs7xOlsyJCy9wxHcB0mTyoTT7HO900sbSbDroAeKqDL7bdZOvRH3k=
X-Received: by 2002:a0d:e20f:0:b0:4dd:8c26:5338 with SMTP id l15-20020a0de20f000000b004dd8c265338mr1065814ywe.513.1674064037022; Wed, 18 Jan 2023 09:47:17 -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>
In-Reply-To: <CALGR9oYmYid=0pMW5tCLpE1GFdz1hgTL0Vy6HDjYBSNZC1WP3A@mail.gmail.com>
From: Wenbo Zhu <wenboz@google.com>
Date: Wed, 18 Jan 2023 09:47:05 -0800
Message-ID: <CAD3-0rMdB=KD4z0S_+yTc8J03fqiYBApah8NGigikjq4KXF83Q@mail.gmail.com>
To: Lucas Pardue <lucaspardue.24.7@gmail.com>
Cc: Ben Schwartz <bemasc@google.com>, Momoka Yamamoto <momoka.my6@gmail.com>, ietf-http-wg@w3.org
Content-Type: multipart/alternative; boundary="0000000000004284cd05f28d6864"
Received-SPF: pass client-ip=2607:f8b0:4864:20::112f; envelope-from=wenboz@google.com; helo=mail-yw1-x112f.google.com
X-W3C-Hub-DKIM-Status: validation passed: (address=wenboz@google.com domain=google.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-20.6
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1pICX3-00BnVB-2I 976162bc5fb72f4dd2dfa9000cd1d2c0
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/CAD3-0rMdB=KD4z0S_+yTc8J03fqiYBApah8NGigikjq4KXF83Q@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/40685
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>

On Wed, Jan 18, 2023 at 9:16 AM Lucas Pardue <lucaspardue.24.7@gmail.com>
wrote:

> Hi Momoka,
>
> Thanks for sharing your proposal. If I understand the use case, Dragana
> made a proposal to address some similar problems a little while back [1]
> (albeit solving the problem in a different way). Just in case you didn't
> catch it the first time around, and the discussion thread for that proposal
> probably has some useful background [2].
>
> I think the value of any solution to this class of problem depends on how
> much pain the decision about what connection to use causes. IHMO that
> mostly comes down to a matter of latency.
>
> For example, in one case, where a web browser has an HTTP/2 connection
> open to navigate a page, which then leads to a loading a document that
> includes an wss:// URL, by that time the proposed
> SETTINGS_ENABLE_WEBSOCKETS would likely have been received and the browser
> can make an informed choice whether to try to open a WebSocket stream or
> to.
>
> However, in cases where there is no active connection, then the client is
> going to have to create one and wait for the server SETTINGS before knowing
> what to do. That has latency and is a gamble. Without some client-side
> caching of the server support, it might be a safer gamble to just always
> try HTTP/1.1.
>
> When WebSockets over H2 was written, I might have agreed that
> SETTINGS_ENABLE_CONNECT_PROTOCOL is a signal the server supports WebSockets
> over H2. 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. For instance, I might theoretically like to roll out
> support for WebTransport and never roll out WebSockets.
>
> 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.
>
> Which gets me thinking, maybe we should be designing a way for clients to
> query the :protocols supported for a target resource or a server. The
> OPTIONS methods can carry the query, however, the :protocol pseudo-header
> cannot be sent directly in the response, so another header might be
> required - I'd write that up if there's interest.
>


> If a browser is already making pre-flight OPTIONS requests for a WebSocket
> due to CORS, this approach would seem to align with that.
>
My understanding is that this is not the case, i.e. no preflight or CORS
for websockets.  I would be interested in the background behind it.



> Cheers
> Lucas
>
> [1] -
> https://datatracker.ietf.org/doc/draft-damjanovic-websockets-https-rr/
> [2] -
> https://lists.w3.org/Archives/Public/ietf-http-wg/2021OctDec/0052.html
>
> On Wed, Jan 18, 2023 at 4:22 PM Ben Schwartz <bemasc@google.com> wrote:
>
>> This draft says
>>
>> Suppose the server supports extended CONNECT but not bootstrapping
>>> WebSockets over that HTTP connection. In this case, the client sending a
>>> WebSocket handshake request will result in a response of 501 (Not
>>> Implemented) status code (Section 15.6.2 of [HTTP]), and the client would
>>> need to fall back to trying the WebSocket handshake over HTTP/1.
>>
>>
>> I don't think this is correct.  If the client encountered this error
>> code, it would just fail the WebSocket setup attempt.
>>
>> In general, I don't think we should be asking clients to retry requests
>> across different HTTP versions.  If you publish wss:// URIs for your
>> domain, you need to support WebSocket on all the domain's HTTP versions.
>>
>>
>> On Wed, Jan 18, 2023 at 10:45 AM Momoka Yamamoto <momoka.my6@gmail.com>
>> wrote:
>>
>>>
>>> Hello,
>>>
>>> I have submitted an internet-draft proposing a SETTINGS_ENABLE_WEBSOCKETS
>>> settings parameter.
>>> With WebSockets not being the only protocol that uses extended CONNECT (
>>> https://github.com/ietf-wg-webtrans/draft-ietf-webtrans-http3/issues/68#issuecomment-1310323592
>>> ),
>>> Before starting the WebSocket handshake, it will be nice to know if the
>>> server supports bootstrapping WebSockets over HTTP/2 or HTTP/3.
>>>
>>> I would love to know your thoughts
>>>
>>> Momoka Y
>>>
>>> ---------- Forwarded message ---------
>>> From: <internet-drafts@ietf.org>
>>> Date: Sat, Jan 7, 2023 at 6:30 PM
>>> Subject: New Version Notification for
>>> draft-momoka-httpbis-settings-enable-websockets-00.txt
>>> To: Momoka Yamamoto <momoka.my6@gmail.com>
>>>
>>>
>>>
>>> A new version of I-D,
>>> draft-momoka-httpbis-settings-enable-websockets-00.txt
>>> has been successfully submitted by Momoka Yamamoto and posted to the
>>> IETF repository.
>>>
>>> Name:           draft-momoka-httpbis-settings-enable-websockets
>>> Revision:       00
>>> Title:          SETTINGS_ENABLE_WEBSOCKETS settings parameter for HTTP/2
>>> and HTTP/3
>>> Document date:  2023-01-07
>>> Group:          Individual Submission
>>> Pages:          5
>>> URL:
>>> https://www.ietf.org/archive/id/draft-momoka-httpbis-settings-enable-websockets-00.txt
>>> Status:
>>> https://datatracker.ietf.org/doc/draft-momoka-httpbis-settings-enable-websockets/
>>> Html:
>>> https://www.ietf.org/archive/id/draft-momoka-httpbis-settings-enable-websockets-00.html
>>> Htmlized:
>>> https://datatracker.ietf.org/doc/html/draft-momoka-httpbis-settings-enable-websockets
>>>
>>>
>>> Abstract:
>>>    This document proposes a new HTTP settings parameter,
>>>    SETTINGS_ENABLE_WEBSOCKETS.  This parameter indicates whether the
>>>    server supports bootstrapping WebSockets over the established
>>>    connection.
>>>
>>>
>>>
>>>
>>> The IETF Secretariat
>>>
>>>
>>>