Re: New Version Notification for draft-nottingham-http-availability-hints-01.txt

Rory Hewitt <rory.hewitt@gmail.com> Tue, 09 July 2024 16:35 UTC

Received: by ietfa.amsl.com (Postfix) id 0E349C1D4A88; Tue, 9 Jul 2024 09:35:27 -0700 (PDT)
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 0D825C15153F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 9 Jul 2024 09:35:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.857
X-Spam-Level:
X-Spam-Status: No, score=-7.857 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=w3.org header.b="Xz0Rto6h"; dkim=pass (2048-bit key) header.d=w3.org header.b="pjQRdGxm"; dkim=pass (2048-bit key) header.d=gmail.com header.b="MJqrBJ6a"
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 9bGW5FuFO_Gx for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 9 Jul 2024 09:35:23 -0700 (PDT)
Received: from mab.w3.org (mab.w3.org [IPv6:2600:1f18:7d7a:2700:d091:4b25:8566:8113]) (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 1474CC151717 for <httpbisa-archive-bis2Juki@ietf.org>; Tue, 9 Jul 2024 09:35:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:Cc:To:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=1mwqfxOEYM1RODtWCq80hJA1MzQViwgTS1LY62v6xFM=; b=Xz0Rto6h1RgQwKBh3ZGyZxw/wv /gIKMlbifQ/jnTAe5HYnU2Zz272vIcm/XaCOsGWr4Oyb6Nnm29s+cPwRSQ1VbvvM4CrS63wOivoTO CVuj8fOXCfSZ8QKpjiJjQjZU0vJTxwjsRlP37a8KOL2fhYGoyeVyErgTMBgs+j4BiNOyW1IfEwSG9 dgwHUDxpRZql2uACnKEWLcCEnHaf/eL5yFRg4hGTlyflonvLLUqXKI0HbN1cEtyAhItkpL/J5US1V CYgzuEjTPK+GvYcjTSQkIvJAe7Hv7RMpaCn6xR/lRt0FzMCEYXok4CZxMkKzzRNzsW07V0rHPH4au l9kqSyZw==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sRDnG-00DewY-35 for ietf-http-wg-dist@listhub.w3.org; Tue, 09 Jul 2024 16:34:18 +0000
Resent-Date: Tue, 09 Jul 2024 16:34:18 +0000
Resent-Message-Id: <E1sRDnG-00DewY-35@mab.w3.org>
Received: from ip-10-0-0-224.ec2.internal ([10.0.0.224] helo=puck.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <roryhewitt@gmail.com>) id 1sRDnD-00Devd-1t for ietf-http-wg@listhub.w3.internal; Tue, 09 Jul 2024 16:34:15 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=1mwqfxOEYM1RODtWCq80hJA1MzQViwgTS1LY62v6xFM=; t=1720542855; x=1721406855; b=pjQRdGxmiZ/aW8/xFrz667NhCCvw/HPHsq7gwzAdWn/UDAvzzryV8SzlRbc5LFwqlcOzqbJvc4o i19GkgItDYXwz20H/IDwe5uQxuc0xkcbwR8hiXD4X8oafIIt+WM/neUqD6er/TOE5MnyeudcFZ0Kc F8nazzb91dxMOUnyio+wf/19y0vLZYkOD+enlGGv3iTnWZJemsPogfNf41XmM8oJ6lKQCNqNLkpKr CIhd/RodSPGPtrV4V9ObJvUF+UDFBYtk9zuYyYDHv3w9ZLOW6bp809bLcV2nOyYyQdfvnELksHDP0 rVjgX6k2PRdIxWz6Dc5SxQlghrpI75+IjAjQ==;
Received-SPF: pass (puck.w3.org: domain of gmail.com designates 2a00:1450:4864:20::234 as permitted sender) client-ip=2a00:1450:4864:20::234; envelope-from=roryhewitt@gmail.com; helo=mail-lj1-x234.google.com;
Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <roryhewitt@gmail.com>) id 1sRDnC-00GQoH-2M for ietf-http-wg@w3.org; Tue, 09 Jul 2024 16:34:15 +0000
Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-2ee90dc1dc1so52331191fa.3 for <ietf-http-wg@w3.org>; Tue, 09 Jul 2024 09:34:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720542850; x=1721147650; darn=w3.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=1mwqfxOEYM1RODtWCq80hJA1MzQViwgTS1LY62v6xFM=; b=MJqrBJ6acmGkk+WTZTij8dq/Ev0kmXPIuIFTApJPfyB4b5Fh2xiBthdHGn/FK3o7KZ E+jCVQYLkD14eDzMpRlA+G4OqOXLL2dAzJT9ZadMnbNL/kIfFFYE1TpGO8Y69nCTaF7k SYIIyNTS+5/E5gIgiE/6bmHoKHzc9xzQqluLMZLEbg+8PYl/7XjCrEU10gHiUMSrD+et ScPEGhdQ6xVHTc5ujXlraXlFy+t3wfh3ZXbEEuXiWnSiHZpP3H6xoTIor4zUvB5n+pQK R7AhEIyUaZz7497MpQ/qB+GUTOeVVayEguap1y4GQco3lmhfActKMZC3vg6KWULgY7Wo xARA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720542850; x=1721147650; 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=1mwqfxOEYM1RODtWCq80hJA1MzQViwgTS1LY62v6xFM=; b=wU64PT8cuvH0s0KlCcW/eXmJA5ePdf/rto7fEBoByshun+ZcEt2J01sRVVH8deC37W LBCKOczaS/4KZayVecFyYgUqRV84SP+atCYITDNULIN/VPctFxJfxutUjuGuOITUa5is pAHqnkFhs6TCGddrAdI73+F2MsN0cMR+FnWgJCY+f6bkOLWLLPfAYDpYWSmXPKZHpZq8 8m3Zvqn/bQmWawTquHHPhfIjphdy96IExHU8jSTBO/nM49aL9a28X3soLGnpCzph9p7M REqSbcTlzNI90WoAriZ15r9Y2bXoa8M8rpAqGxC/wh+52P8ncNHOMyTlQ40UquZY7uiM Ifcg==
X-Gm-Message-State: AOJu0Yxix5q1O4Da8grUpbDNN48a1MPfoCDCnfzF4o3/jPnVh3ZTdRDo 93cddP9PmJmrOFOfhJaahiWlSouHUeiCx2xFyMqCFYWZC7iTFcJyZby5UOcnjeEdyRmQ+KOCc07 WFyd0XI5lkqZ1I5S73wNUy39GIiqbCmYS
X-Google-Smtp-Source: AGHT+IEbUROyVCHAgcQRkyCe192boK8a1ksSEh+M1zGNIN8OlOTMz75gI2JQ0S1my5zra45hp9AnpmWd+2etuaxwp1g=
X-Received: by 2002:a2e:b0f2:0:b0:2ee:6254:f9ee with SMTP id 38308e7fff4ca-2eeb3171857mr22828691fa.42.1720542849702; Tue, 09 Jul 2024 09:34:09 -0700 (PDT)
MIME-Version: 1.0
References: <CAEmMwDwFmK_wuQg4gnjj4rbVr5Wb_m+f3MFuTXFmA7ZMCvMKEA@mail.gmail.com> <AFB140A5-1611-49ED-9C33-9E5675201286@mnot.net>
In-Reply-To: <AFB140A5-1611-49ED-9C33-9E5675201286@mnot.net>
From: Rory Hewitt <rory.hewitt@gmail.com>
Date: Tue, 09 Jul 2024 09:33:58 -0700
Message-ID: <CAEmMwDzHKF=ZP4t80YMB9F_Y3kNie2HLR_11eiYPr5+cLGagqw@mail.gmail.com>
To: Mark Nottingham <mnot@mnot.net>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="00000000000060a494061cd3192d"
X-W3C-Hub-DKIM-Status: validation passed: (address=roryhewitt@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-5.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1sRDnC-00GQoH-2M e3d4b16568377d4d9407975afbd01fa0
X-Original-To: ietf-http-wg@w3.org
Subject: Re: New Version Notification for draft-nottingham-http-availability-hints-01.txt
Archived-At: <https://www.w3.org/mid/CAEmMwDzHKF=ZP4t80YMB9F_Y3kNie2HLR_11eiYPr5+cLGagqw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52059
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/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

The 'header explosion' concern is only part of it. My main point is that
using a single well-crafted header can both fill in the holes and also
provide more explicit preference information - covering the exact
edge-cases you mention in the design.

However, if you'd prefer to use multiple headers, I would strongly suggest
that you change "Cookie-Indices" to "Avail-Cookie" or
"Avail-Cookie-Indices" - all the related headers should have a common
"Avail-*" prefix, no?

On Tue, Jul 9, 2024 at 12:29 AM Mark Nottingham <mnot@mnot.net> wrote:

> I'm not too concerned about an explosion of headers -- it only becomes an
> issue if a resource negotiates on many axes, and even then things like
> header compression work in our favour (splitting them into separate headers
> often helps header compression). Client Hints took the same approach, and I
> like the symmetry with them.
>
> Cheers,
>
>
> > On 9 Jul 2024, at 8:29 AM, Rory Hewitt <rory.hewitt@gmail.com> wrote:
> >
> > Hey Mark,
> >
> > My primary concern with this is the possible proliferation and
> over-extensibility of `Avail-*` headers.
> >
> > This document includes Avail-Encoding|Format|Language|ECT (ECT is a
> likely addition eventually) and Cookie-Indices, but those may need to be
> extended in the future, leading to a large number of headers.
> >
> > To use the example you provide in the Introduction section:
> >
> > Vary: Accept-Encoding, Accept-Language, ECT
> > Avail-Encoding: gzip, br
> > Avail-Language: fr, en;d
> > Avail-ECT: ("slow-2g" "2g" "3g"), ("4g");d
> >
> > Naively, would it not make more sense to have a single
> *Available-Responses* header, like this (apologies if the syntax isn't
> quite correct for structured fields):
> >
> > Vary: Accept-Encoding, Accept-Language, ECT
> > Available-Responses: enc=gzip,br;lang=en,fr;ect=("4g"),("slow-2g" "2g"
> "3g")
> >
> > Of course, this includes some assumptions:
> >
> > 1. The first option is the default - we have traditionally not done
> that, and used things like Q-values (ugh!), but with brand new headers,
> does it not make sense to start implementing a higher-level standard that
> where multiple values are specified, they should be specified in a
> prioritized list? For any given listable header, both clients and servers
> know a preference order, and that should be implicit in the headers they
> send and receive. Is this complete heresy to even suggest this?
> > 2. This may be less efficient when using things like QPACK static tables
> to hold 'commonly-used' header values, but I don't believe that's something
> that anyone is worrying about yet...
> >
> > On the plus side, it (kinda) simplifies the header size (not a big issue
> with Huffman encoding and first-subsequent responses), but to me, having a
> single response which specifies all the available response types is an
> improvement to having multiple headers. As new response axes becomes
> available, they can simply be added to the existing header.
> >
> > Additionally, it can be extended to include all the 'holes' and various
> axes of preference mentioned - for example, the following shows that the
> English-gzip is preferred over the French-brotli version (while still
> making it clear that French-gzip and English-brotli versions are available
> - the preference order symbolized here is explicitly:
> >
> > en-gzip
> > fr-gzip
> > fr-br
> > en-br
> >
> > based on the parenthesized grouping:
> >
> > Vary: Accept-Encoding, Accept-Language, ECT
> > Available-Responses:
> (enc=gzip;lang=en,fr),(enc=br;lang=fr,en);ect=("4g"),("slow-2g" "2g" "3g")
> >
> >
> > To use an example of a 'hole', if a French-gzip version IS NOT
> available, you'd have this:
> >
> > Vary: Accept-Encoding, Accept-Language, ECT Available-Responses:
> (enc=br;lang=fr),(enc=gzip,br;lang=en);ect=("4g"),("slow-2g" "2g" "3g")
> >
> > which identifies the following preference order:
> >
> > br-fr
> > en-gzip
> > en-br
> >
> > An English client can use *either* gzip or br (gzip is preferred), but a
> French client can *only* get a brotli response. Crucially though,
> French-brotli is still preferred to either English-gzip or English-brotli,
> even though there's only a single encoding option for French.
> >
> > Rory
> >
> > --
> > Rory Hewitt
> >
> > https://www.linkedin.com/in/roryhewitt
>
> --
> Mark Nottingham   https://www.mnot.net/
>
>

-- 
Rory Hewitt

https://www.linkedin.com/in/roryhewitt