Re: Ambiguity on HTTP/3 HEADERS and QUIC STREAM FIN requirement

Willy Tarreau <w@1wt.eu> Fri, 17 June 2022 10:49 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 78CF1C15AAEC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 17 Jun 2022 03:49:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.662
X-Spam-Level:
X-Spam-Status: No, score=-2.662 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
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 vJfatN5urBYb for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 17 Jun 2022 03:49:16 -0700 (PDT)
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 51662C15AAE6 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 17 Jun 2022 03:49:16 -0700 (PDT)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1o29XJ-0008Ic-Ba for ietf-http-wg-dist@listhub.w3.org; Fri, 17 Jun 2022 10:49:09 +0000
Resent-Date: Fri, 17 Jun 2022 10:49:09 +0000
Resent-Message-Id: <E1o29XJ-0008Ic-Ba@lyra.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by lyra.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <w@1wt.eu>) id 1o29XI-0008Hj-DJ for ietf-http-wg@listhub.w3.org; Fri, 17 Jun 2022 10:49:08 +0000
Received: from wtarreau.pck.nerim.net ([62.212.114.60] helo=1wt.eu) by mimas.w3.org with esmtp (Exim 4.92) (envelope-from <w@1wt.eu>) id 1o29XG-0005eB-Oq for ietf-http-wg@w3.org; Fri, 17 Jun 2022 10:49:08 +0000
Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id 25HAmrOq030739; Fri, 17 Jun 2022 12:48:53 +0200
Date: Fri, 17 Jun 2022 12:48:53 +0200
From: Willy Tarreau <w@1wt.eu>
To: Lucas Pardue <lucaspardue.24.7@gmail.com>
Cc: Martin Thomson <mt@lowentropy.net>, HTTP Working Group <ietf-http-wg@w3.org>
Message-ID: <20220617104853.GA30707@1wt.eu>
References: <CAJ_4DfRD9ktc1cmDd8GmQDx8iX6s=NYj3C9MW-3-yU+SZYxkEQ@mail.gmail.com> <CALGR9obvYB-2vYXYgwSMpS3s8uSbLKn0ZF39piYQ_ROt8DAXJg@mail.gmail.com> <CAPDSy+5-+L_F8gOYht2OWmWHnp4JtWt4tfPbM_TN799AgK7H1A@mail.gmail.com> <71b309c9-0220-4e14-8be5-13f2cb1d1278@beta.fastmail.com> <20220617045330.GB30314@1wt.eu> <d2a71dca-1c0d-416e-8f94-700114266aaf@beta.fastmail.com> <20220617053700.GD30314@1wt.eu> <b5e21b22-e447-4ba1-b907-e2785deb2d5d@beta.fastmail.com> <20220617101722.GA30560@1wt.eu> <CALGR9oba=7Ajf2p+hf+yNVGiaQ1=Vwarq5iPxCmUxLMT_7m0AQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CALGR9oba=7Ajf2p+hf+yNVGiaQ1=Vwarq5iPxCmUxLMT_7m0AQ@mail.gmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Received-SPF: pass client-ip=62.212.114.60; envelope-from=w@1wt.eu; helo=1wt.eu
X-W3C-Hub-Spam-Status: No, score=-4.9
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, W3C_AA=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1o29XG-0005eB-Oq e8bee3f6b4f4b6b865d1a87399c58c3a
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Ambiguity on HTTP/3 HEADERS and QUIC STREAM FIN requirement
Archived-At: <https://www.w3.org/mid/20220617104853.GA30707@1wt.eu>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/40154
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>

Hi Lucas,

On Fri, Jun 17, 2022 at 11:41:43AM +0100, Lucas Pardue wrote:
> Which leads me to a wild thought*. One could attempt to solve this problem
> in the HTTP framing layer, by introducing, via extension, a new
> pseudo-header ":no-content", which modifies the message exchange sequence
> in H2 and H3 such that no DATA frames are allowed after the first flight of
> header section. That solves the disjoin between the headers section and the
> ES flag or FIN bit. And would allow the receiving peer to make more
> concrete choices about whether to process a request early or wait a bit.

I think that it's an excellent idea to explore! The pseudo-header fields
were created to fill a gap and this is a perfect example of such a gap
where the HTTP framing doesn't sufficiently permit an agent to express
its intent anymore, and your proposal addresses this. The only thing is
that if we wanted to do something clean, it would have to be advertised
with the vast majority of GET requests, which is unlikely to happen in
the foreseable future. Regardless, I think it's worth continuing to
think around this.

> * It's Friday, so it's the day of the week I'm allowed to have these :-P

You're right ;-)

Willy