Re: New Version Notification for draft-momoka-httpbis-settings-enable-websockets-00.txt
Lucas Pardue <lucaspardue.24.7@gmail.com> Thu, 19 January 2023 15:56 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 D0690C14F74B for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 19 Jan 2023 07:56:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.497
X-Spam-Level:
X-Spam-Status: No, score=-2.497 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_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 f7TiSQGBuoKr for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 19 Jan 2023 07:56:49 -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 4F382C14E513 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 19 Jan 2023 07:56:49 -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 1pIXH1-004bnX-Na for ietf-http-wg-dist@listhub.w3.org; Thu, 19 Jan 2023 15:56:19 +0000
Resent-Date: Thu, 19 Jan 2023 15:56:19 +0000
Resent-Message-Id: <E1pIXH1-004bnX-Na@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 <lucaspardue.24.7@gmail.com>) id 1pIXGz-004bmF-M8 for ietf-http-wg@listhub.w3.org; Thu, 19 Jan 2023 15:56:17 +0000
Received: from mail-oa1-x32.google.com ([2001:4860:4864:20::32]) by mimas.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 1pIXGx-00CFsg-M0 for ietf-http-wg@w3.org; Thu, 19 Jan 2023 15:56:17 +0000
Received: by mail-oa1-x32.google.com with SMTP id 586e51a60fabf-15f64f2791dso2993939fac.7 for <ietf-http-wg@w3.org>; Thu, 19 Jan 2023 07:56:15 -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=LbZhfGNuEO6c/jEQhBVHLmGTJes9WA06GjGksqPlLmE=; b=LIe4M1Jmj7GmhbFihhkB8o/z1vT56+r6T+nuxtp3OenFCLFkzlWLh0AFW4utrss7R2 WIejxovgfhPA0aocQQnG01DJlkrDvqX/QnkhExtq0og/2+BNVaxyUCl6GG8lp4e+z72C Mmoxm85rifsqREy/KF0u1vF18dIFh9z0ZOAyUls7H/KHjzzRsBEQPi66zKRW6AyN+l8k eRT3piENq2+/bFgKfo2VQZ7+ozq1e5XerloOas34ex8W10Wu9i4crJ2RMlDMc9NKqThK e6er5urzNofx83UaPIDEahuxsl76/s71MM9WaM7tLdrXRODmnmuq50aeSepQxlsCvh6M y6+A==
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=LbZhfGNuEO6c/jEQhBVHLmGTJes9WA06GjGksqPlLmE=; b=d/SmEcNruo4uWmuV3gYAPQt6W8CabVp/fJBFkcfl2JcP6eZZU6YVmPQhW5KaCWzDNU ccjoD/ziGcn8485owHOpBi0FMQ9m5WptOh5uVZVe5vL07kdfSqM+2cUkpsNk2z4masyB GM8O7NjKdMbU8wTV5Yk8oR4LfVm7CEXbMIbTIE3cOXisMEb2+/H4fZq4e40AUv1p+/BU 0HED9GtDrianbUG9dVlZlaBODxAsrsztVVIi5/jXvFhMPgrWrjJ97uzcFYqGwi7v/06H p0YVl7Luf5ym1qd6TBCgqHF/KNnWM94Xks1ZsxGvMjcF+ZGA2GmN8HGRyvxzccDveKva 0ADA==
X-Gm-Message-State: AFqh2kpxaNqURNmyrFRafQ+VnwAMPy4+hZ99lCdb/y33wrtaHsoHY5Rx B+vm2QozkiRSMFQdm4EkJ21enmPSyHC7yklS2Ullq8h5GRc=
X-Google-Smtp-Source: AMrXdXsgDW+LLmMJ3yikjKRFhlv/Xd0oFDl1+ZGo4t1nPRIj/7PVEWmox8DrGR0myrSb3V29PFqNDXtuahfOYWFH1+0=
X-Received: by 2002:a05:6870:6605:b0:14f:bdc3:ab23 with SMTP id gf5-20020a056870660500b0014fbdc3ab23mr1141778oab.240.1674143764504; Thu, 19 Jan 2023 07:56:04 -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> <CALGR9obABt+cL2Cafkt_x9fRvu9BTD+tZmPGF7-SaDeaNYvBhA@mail.gmail.com> <CAHbrMsB2a-9U_f+AFq5L9PmQzquc=wdEWcYoR8UyN4H=LiaBzQ@mail.gmail.com> <CAD9w2qaGEG96hDrGEadMSRE+Kxr-DzuThyMmShBzjzmBarC_Jg@mail.gmail.com> <CAHbrMsBT3DQJe8jvxmpt8TPW4jhttOLkQmco9+_FpZfGUJxCRw@mail.gmail.com>
In-Reply-To: <CAHbrMsBT3DQJe8jvxmpt8TPW4jhttOLkQmco9+_FpZfGUJxCRw@mail.gmail.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Thu, 19 Jan 2023 15:55:53 +0000
Message-ID: <CALGR9oZfiura=WnVVX47YZx-TFY_6xvK8PckS5cXY325a859AA@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="00000000000062e3d005f29ff8c4"
Received-SPF: pass client-ip=2001:4860:4864:20::32; envelope-from=lucaspardue.24.7@gmail.com; helo=mail-oa1-x32.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: mimas.w3.org 1pIXGx-00CFsg-M0 6c6119ed00dd9a106c2665f3e0b4d891
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/CALGR9oZfiura=WnVVX47YZx-TFY_6xvK8PckS5cXY325a859AA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/40692
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, On Thu, Jan 19, 2023 at 2:36 PM Ben Schwartz <bemasc@google.com> wrote: > > > On Thu, Jan 19, 2023 at 8:47 AM Momoka Yamamoto <momoka.my6@gmail.com> > wrote: > >> Hello, >> Thank you both for your response. >> >> Most clients have solved this problem by not implementing RFC 8441 at >>> all. Chromium has implemented it, with an interesting workaround: Extended >>> CONNECT is only used if a suitable socket with >>> SETTINGS_ENABLE_CONNECT_PROTOCOL is already available. If a fresh >>> connection is needed for wss://, Chromium always uses HTTP/1.1. (See >>> https://docs.google.com/document/d/1ZxaHz4j2BDMa1aI5CQHMjtFI3UxGT459pjYv4To9rFY/edit# >>> .) >>> >> >> This is the use case I am thinking of but for WebSockets over HTTP/3. >> Chromium uses WebSockets over HTTP/2 if there is an existing HTTP/2 >> connection that has received SETTINGS_ENABLE_CONNECT_PROTOCOL. >> However, it cannot do the same for HTTP/3 because receiving >> SETTINGS_ENABLE_CONNECT_PROTOCOL currently does not guarantee support >> for WebSockets over HTTP/3. SETTINGS_ENABLE_CONNECT_PROTOCOL will be >> sent for other protocols as well. >> > > Thanks for helping me to understand the motivation for this proposal. Do > you believe there are existing origins that > 1. Offer SETTINGS_ENABLE_CONNECT_PROTOCOL in HTTP/3 AND > 2. Operate WebSocket services AND > 3. Don't support WebSocket over HTTP/3 AND > 4. Are not willing to implement WebSocket over HTTP/3 > ? > > If so, then I agree we have a problem. If not, I think the best course of > action is to assume that the origin's supported "Upgrade Tokens"/":protocol > values" are independent of HTTP version, except where the IETF has ruled > out support for a particular combination of :protocol and HTTP version. > I think this is an excellent way to look at the landscape. My take is that SETTINGS_ENABLE_CONNECT_PROTOCOL declares that a H2 or H3 server is willing to consider a request with the :protocol pseudo-header as valid syntax. There's nothing saying what values of :protocol it has it has to support. To question 4, I'd say that is equally a product question as much a technical one. RFC 8441 has been knocking around a while but my feeling is that deployments are light. There could be situations where interop or implementation bugs mean WebSockets over HTTP/X behave badly while WebSockets over HTTP/Y are fine, meanwhile WebTransport over X and Y also work fine. In that scenario, temporarily disabling a problem variant until it can be investigated and fixed is helpful, because the other variants can continue delivering the feature. So allowing fine tuned control over variants, such as via an explicit WebSocket setting, would seem to satisfy the server and stop the client from having to guess. > It would be nice if a client could know if the existing HTTP/3 connection >> supports bootstrapping WebSockets. >> > > In my view, clients are free to assume this when they see a wss:// link to > an origin that offers SETTINGS_ENABLE_CONNECT_PROTOCOL in HTTP/3. > Thanks for the earlier link to Chrome's behaviour, it helps to frame the discussion. Quoting it for ease > This would only be used for secure WebSockets requests, and only if there is already an HTTP/2 connection where the server has already advertised support for WebSockets over HTTP/2 via the HTTP/2 SETTINGS parameter defined in the specification. SETTINGS_ENABLE_CONNECT_PROTOCOL doesn't imply that bootstrapping websockets is supported IMO, which would mean this assumption doesn't strictly hold true. Content that includes a wss:// parameter could be generated without any knowledge of the various caches or edges features - there's typically administrative and business relationships between these groups. Since Chrome only sends WebSocket over HTTP/2 on a warm connection with a SETTING of a particular value, changing that value to be SETTINGS_ENABLE_WEBSOCKET instead seems like it aligns well with the current flow and wouldn't be too disruptive. For reference, WebTransport over HTTP/3 has been discussing related matters; see https://github.com/ietf-wg-webtrans/draft-ietf-webtrans-http3/issues/68. My understanding is that the discussion has aligned on advertising all "layered settings", that is, advertising SETTINGS_ENABLE_CONNECT_PROTOCOL and SETTINGS_ENABLE_WEBTRANSPORT. Defining SETTINGS_ENABLE_WEBSOCKETS would be consistent with that. > ... > >> It would be nice if a client could know if the server supports >> Bootstrapping WebSockets over HTTP/2 or HTTP/3 before initiating a >> connection to the server. >> > > Interesting! Publishing a flag for SETTINGS_ENABLE_CONNECT_PROTOCOL in > the HTTPS record seems plausible to me. > In the context of Chrome: this seems like a new flow that is a performance optimization. That's useful too but is still a separate issue IMO. We could fix both at the same time, but we should be clear what they address. In Dragana's draft [1], the proposal was to advertise "extended-connect" in an SvcParamKeys. If we were to follow a layered approach, we could also consider having a signal for the upgrade tokens that are also supported. Cheers, Lucas [1] - https://www.ietf.org/archive/id/draft-damjanovic-websockets-https-rr-00.html > ... >
- Fwd: New Version Notification for draft-momoka-ht… Momoka Yamamoto
- Re: New Version Notification for draft-momoka-htt… Ben Schwartz
- Re: New Version Notification for draft-momoka-htt… Lucas Pardue
- Re: New Version Notification for draft-momoka-htt… Wenbo Zhu
- Re: New Version Notification for draft-momoka-htt… Ben Schwartz
- Re: New Version Notification for draft-momoka-htt… Lucas Pardue
- Re: New Version Notification for draft-momoka-htt… Ben Schwartz
- Re: New Version Notification for draft-momoka-htt… Momoka Yamamoto
- Re: New Version Notification for draft-momoka-htt… Ben Schwartz
- Re: New Version Notification for draft-momoka-htt… Lucas Pardue
- Re: New Version Notification for draft-momoka-htt… Momoka Yamamoto
- Re: New Version Notification for draft-momoka-htt… Momoka Yamamoto
- Re: New Version Notification for draft-momoka-htt… Glenn Strauss
- Re: New Version Notification for draft-momoka-htt… Lucas Pardue
- Re: New Version Notification for draft-momoka-htt… Glenn Strauss
- Re: New Version Notification for draft-momoka-htt… Lucas Pardue
- Re: New Version Notification for draft-momoka-htt… Ilari Liusvaara
- Re: New Version Notification for draft-momoka-htt… Momoka Yamamoto
- Re: New Version Notification for draft-momoka-htt… Momoka Yamamoto