[quicwg/base-drafts] Consider a specific error when switching to an HTTP/3 connection that does not support an extension (#3833)

Lucas Pardue <notifications@github.com> Tue, 07 July 2020 23:29 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 334B63A0C0C for <quic-issues@ietfa.amsl.com>; Tue, 7 Jul 2020 16:29:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.697
X-Spam-Level:
X-Spam-Status: No, score=-1.697 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_IMAGE_ONLY_28=1.404, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 pBuY5Szdq8UZ for <quic-issues@ietfa.amsl.com>; Tue, 7 Jul 2020 16:29:08 -0700 (PDT)
Received: from out-28.smtp.github.com (out-28.smtp.github.com [192.30.252.211]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0A23C3A0C08 for <quic-issues@ietf.org>; Tue, 7 Jul 2020 16:29:07 -0700 (PDT)
Received: from github-lowworker-1dbcc59.ash1-iad.github.net (github-lowworker-1dbcc59.ash1-iad.github.net [10.56.105.54]) by smtp.github.com (Postfix) with ESMTP id 19E688C19E5 for <quic-issues@ietf.org>; Tue, 7 Jul 2020 16:29:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1594164547; bh=uW1AG4AVpE6OAckM/b6f0amPMdvl26KNRXvuNXoSPvk=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=Ro9T4JEcV+unaUyP9dGrp/6MznxNIztQ2TCPurOmXyK+TpmPBqQPeLVzI75aYC0to nhoT/yWdPm3czV+el94ibkC9PLNkjjJhzPeCQPhfiF3xzb2rbHQDMh3kBvngS5ptdE eI+TW2e7JSdNzodCDcF4eEnC0xvlvt+sVd6lCzLI=
Date: Tue, 07 Jul 2020 16:29:07 -0700
From: Lucas Pardue <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK34A3YF76ISWCZOVAN5CDTEHEVBNHHCNZ746I@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3833@github.com>
Subject: [quicwg/base-drafts] Consider a specific error when switching to an HTTP/3 connection that does not support an extension (#3833)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5f0505439e05_3a0f3fc976ccd95c1093b9"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: LPardue
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/mZpGjrH3LCIDfrYL4peXltm7K1o>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Jul 2020 23:29:11 -0000

I was reminded of an observation about Alt-Svc and Extensions that I made back in Oct '19 and posted to the HTTP WG https://lists.w3.org/Archives/Public/ietf-http-wg/2019OctDec/0022.html

To summarise the post:

RFC7838 defines the status code 421 Misdirected Request which can be used in some failure cases.

Now imagine: an HTTP/2 server supports WebSocket (RFC 8441) negotiated via SETTINGS_ENABLE_CONNECT. It advertises HTTP/3 using Alt-Svc, a client that switches over to HTTP/3 only to find that WebSockets are not supported in that version. The client may well decide to abort the connection at this point and fallback to H2. Having a specific error code to signal this case (similar in spirit to Status 421) could help endpoints discover this type of error.

This problem is not unique to WebSockets, there may be other extension scenarios that could affect switching between H2->H3, H3->H2, H2->H2, and H3->H3.

We might benefit from defining a specific error code as part of HTTP/3 from the get-go. However, given the chance of error in HTTP/2 this could be something that suits just creating an extension document to cover both versions. I'm open to either option so creating this issue to get better visibility and input.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3833