Re: Time to refresh HTTP/2?

Willy Tarreau <w@1wt.eu> Mon, 31 August 2020 05: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 E17733A0EFC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 30 Aug 2020 22:34:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.65
X-Spam-Level:
X-Spam-Status: No, score=-2.65 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 HvLpgmp9Lks9 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 30 Aug 2020 22:34:01 -0700 (PDT)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 254CA3A0EFB for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 30 Aug 2020 22:34:00 -0700 (PDT)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1kCcOs-0000Yp-L0 for ietf-http-wg-dist@listhub.w3.org; Mon, 31 Aug 2020 05:30:38 +0000
Resent-Date: Mon, 31 Aug 2020 05:30:38 +0000
Resent-Message-Id: <E1kCcOs-0000Yp-L0@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 1kCcOq-0000Y3-Ef for ietf-http-wg@listhub.w3.org; Mon, 31 Aug 2020 05:30:36 +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 1kCcOo-0004td-FP for ietf-http-wg@w3.org; Mon, 31 Aug 2020 05:30:36 +0000
Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id 07V5UHAR031712; Mon, 31 Aug 2020 07:30:17 +0200
Date: Mon, 31 Aug 2020 07:30:17 +0200
From: Willy Tarreau <w@1wt.eu>
To: Martin Thomson <mt@lowentropy.net>
Cc: Mark Nottingham <mnot@mnot.net>, ietf-http-wg@w3.org
Message-ID: <20200831053017.GA31680@1wt.eu>
References: <4facac0f-867d-4947-840c-fcd675a09d51@www.fastmail.com> <19ED7610-A661-4E96-B25A-352109DFFFCD@mnot.net> <c0ca4dd7-f943-44ae-9940-a679aa88e878@www.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <c0ca4dd7-f943-44ae-9940-a679aa88e878@www.fastmail.com>
User-Agent: Mutt/1.6.1 (2016-04-27)
Received-SPF: pass client-ip=62.212.114.60; envelope-from=w@1wt.eu; helo=1wt.eu
X-W3C-Hub-Spam-Status: No, score=-7.9
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_IRA=-1, W3C_IRR=-3, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1kCcOo-0004td-FP 80619b744d15374a225b0d3c387e1c3b
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Time to refresh HTTP/2?
Archived-At: <https://www.w3.org/mid/20200831053017.GA31680@1wt.eu>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/37975
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 Martin,

On Mon, Aug 31, 2020 at 10:10:20AM +1000, Martin Thomson wrote:
> On Fri, Aug 28, 2020, at 23:00, Mark Nottingham wrote:
> > What about priorities?
> 
> I would be opposed to publishing a new version with a replacement priorities
> scheme before that scheme were proven.  It might be OK to publish a version
> with text with the priority scheme removed, with a note about it not being
> interoperable in practice or some such.

I agree that we need to continue to document the protocol that is met
in field so if priorities are in use they must remain documented, possibly
just with a note about them being historic and progressively abandonned
for interoperability reasons.

> On Sat, Aug 29, 2020, at 00:54, Cory Benfield wrote:
> > I'm +1 on this as well. I'd like to see the extensions rolled in,
> > along with GREASE. I'm a bit more nervous about the priority changes
> > given how relatively young they are.
> 
> Cory agrees with me, so I'm probably right....  As for GREASE, I'm reluctant
> to include new design work, but it might be small enough to meet the cut.

Maybe it could be a sentence in each section suggesting what could safely
be greased (or conversely what's known for being unsafe to grease due to
some past mistakes or early deployments).

> > Am 28.08.2020 um 13:27 schrieb Willy Tarreau:
> > +1 as well. Wouldn't it be an opportunity to also reference (or even merge)
> > the extensions such as RFC8441 which adds the ":protocol" pseudo-header ?
>  
> I tend to think that 8441 wouldn't make the cut; it's discrete in the same
> way that the ORIGIN or ALTSVC frames are.

I was thinking about this because the initial rules for :method/:authority/
:path/etc were pretty strict and resulted in some hard-coded checks in the
code I wrote, to the point that every time I thought "I really need to work
on relaxing this to cover 8441", the number of changes in sight made me lazy.
I'm fine with just a sentence indicating that these ones may be altered by
extensions, with a link to 8441 as an example of such.

> On Fri, Aug 28, 2020, at 21:52, Julian Reschke wrote:
> > And it probably should include RFC 8740 ("Using TLS 1.3 with HTTP/2")...
> 
> 8740 might make the cut.

Yes that would be nice indeed.

> Just to add to the list:
> 
> * midders (or multiple trailers or whatever they are) are something I'm still uncertain about
> * a re-design that included better 0-RTT design is probably off the table
> * removing h2c is very tempting, with similar rationale to PRIORITY

I believe that initially we all thought that nobody would dare sending an
H2 preface to an H1 server and that we'd all go the H1 upgrade way. But
in the end, many implementations (both clients and servers) now support
H2 in clear text by simply detecting the preface, and I'm not sure how
many have implemented the h2c mode with the upgrade. At least I haven't.

Another thing I would like to see is unifying the frame flags. We know
that all similar flags have the same value for any frame where defined
but they are still declared as frame-specific, which is a pain to stick
to. I'd rather see a central list of supported flags and indicate what
frame supports what flag.

We'd also need to figure a way to better define how to deal with errors
because I remember seeing contradictions at a number of places depending
on the state-specific or frame-specific rules. It might be easier to
collect some feedback and suggestions now that there are many
implementations. I tend to think that sticking to what to do on frame
receipt might make things clearer.

Cheers,
Willy