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

Mark Nottingham <mnot@mnot.net> Wed, 10 July 2024 01:27 UTC

Received: by ietfa.amsl.com (Postfix) id C2FC9C1519A4; Tue, 9 Jul 2024 18:27:35 -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 C24C8C1516E9 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 9 Jul 2024 18:27:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.858
X-Spam-Level:
X-Spam-Status: No, score=-7.858 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, 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="TmtOrPi5"; dkim=pass (2048-bit key) header.d=w3.org header.b="nZZAOy0u"; dkim=pass (2048-bit key) header.d=mnot.net header.b="qVwDiF8i"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="McMpxcg4"
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 teFCW-RA9IFY for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 9 Jul 2024 18:27:31 -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 1E0F7C151097 for <httpbisa-archive-bis2Juki@ietf.org>; Tue, 9 Jul 2024 18:27:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:To:References:Message-Id:Cc:Date:In-Reply-To:From: Mime-Version:Content-Type:Reply-To; bh=h2KlRKtHBrrffKhivbzGJPMpgh54Dv1Mb1EItTXj0U8=; b=TmtOrPi5MAliHkC0nuyMkFa1ya e3zurT3lAGMv4Q7ORznbrty0nRVEAzrGm0hX2c/Hi7Qgu3g0ukQr+0ihrUAjd5FaOV/CkhLHuCvE4 ES7EhtrXXCc5Lf53p58pp0ZVGKVaj/u8cioa0zE4f9TgF4/EOnW0GrtjLPthmd/pcLvTBfF/8xHpn k+oaurwbzzE0MU0WgUvNAm0a/sZNpImvj+hpe6ApzAWNDj9p9tgXbhI2XwHaRkSvybZ0mX2j1Lpm0 DiCuUY9prFzZ6DNxHVNyuFPWGtqpQA0ITw3mTWYzkRcieKLlkSfX91u0qWmG42zwC2FPED9pHL3Ar CqzNbSPQ==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sRM6g-00Ehiu-15 for ietf-http-wg-dist@listhub.w3.org; Wed, 10 Jul 2024 01:26:54 +0000
Resent-Date: Wed, 10 Jul 2024 01:26:54 +0000
Resent-Message-Id: <E1sRM6g-00Ehiu-15@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 <mnot@mnot.net>) id 1sRM6e-00Ehhy-2c for ietf-http-wg@listhub.w3.internal; Wed, 10 Jul 2024 01:26:52 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=To:References:Message-Id:Cc:Date:In-Reply-To:From:Subject: Mime-Version:Content-Type:Reply-To; bh=h2KlRKtHBrrffKhivbzGJPMpgh54Dv1Mb1EItTXj0U8=; t=1720574812; x=1721438812; b=nZZAOy0ulFmZ+D/GbCGI3MatFS9Xx7tLGXBUl/SCP1GNw5VTyf5i+mZR9/2oC8lv6JDDtSV8rI5 5G9IrzDaCXLM81NwcdeJfijy/DNIG8tmPW5++q9f3DJPsyg1e/DatMN2sBqo7L+kGDPOVNJHH8RRM 8fdMIfZMC65Q+pfXTY5b2FoO06wDz+ohaPFM/iJyjqEBMZujwJtO0aYbWfOkIrVGM1g5svATUr9kg qcPnnNNObhCUz/8DyNk5T3UMaLJ8uLpsd5wxNsgvAdvhJfNWGeJs40vZQKp5fX0LYomCmihELuhKf LZT5yNqhSo22V8TwhN6N4Y+b2wBAp9Rzj++w==;
Received-SPF: pass (puck.w3.org: domain of mnot.net designates 103.168.172.155 as permitted sender) client-ip=103.168.172.155; envelope-from=mnot@mnot.net; helo=fhigh4-smtp.messagingengine.com;
Received: from fhigh4-smtp.messagingengine.com ([103.168.172.155]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <mnot@mnot.net>) id 1sRM6e-00GYS4-0a for ietf-http-wg@w3.org; Wed, 10 Jul 2024 01:26:52 +0000
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfhigh.nyi.internal (Postfix) with ESMTP id F19071140155; Tue, 9 Jul 2024 21:26:48 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 09 Jul 2024 21:26:48 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1720574808; x=1720661208; bh=h2KlRKtHBrrffKhivbzGJPMpgh54Dv1Mb1EItTXj0U8=; b= qVwDiF8ibjQEs/87p8Xp9taRwsKTYTzD7OiBGBsJGwy3wWT5oKIuYXoT8/sxOcrI nD0op8qGZtSKqpXEQeQ7KaJAvCOBu4XdEUDr8XIg0Z0RzcVsOQt7lfErHK6XmfOD jM+XscnNUzLEhX922P3gcarTP213XunjPm/jUxU9c/6mA3CQh2NgdoW9szYciXQw mJFHRMGft8RDUiP2NDS5gfk+FkSeCj/VOJs002tr32HTJRYsR1xVqDJmJS3Xyk5B CcGyKepCFxeH7giFiclU5kRSU2TcPDeyKBIw3evYCnheh4W2nnCjnEjTa0U5/qEE RLzsYhzVR9M7gvqvINVOGQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1720574808; x= 1720661208; bh=h2KlRKtHBrrffKhivbzGJPMpgh54Dv1Mb1EItTXj0U8=; b=M cMpxcg4/h4DZQ+FacmGs11p/ugH93JEEGQhn2s5q3xQjyBrona9ofvGtZi7xcCsW rr+CA2j0OkgamK3Ty5D3OQ8Jo05rJ0+UJzksTdzpvtW/SKOr1oHa2gxQcdPJ9Jm3 AxVZseveaFSce6Pqq7boO0skZ4pzgEnUKN6sUPprg4wVbVIvwLziAmGtujFLpx+g +xv0Gxo6XOtkuxt9etrTGf9i5Ntu23yG739XrAt+rHyDITiHWrXgZR/PItTLkpjV 5Qn6XfcbZmoyBqur+5GDw/7WoDA9dzNHAmdFaMaOG6VgGJK1pzn98ok0Fhwucr8N LEGhevOFewAinXysIJkbg==
X-ME-Sender: <xms:V-ONZg1bvYbsAZHwYh3X59jLPAAy89TZC3ewTkH_KtbevQI16MueAQ> <xme:V-ONZrGOX_z7l3e5pnB-Wes4WPfkz6QPQ3ySsEyZLkwi2-75fl_SlpSiOxqvQZJWM 10v0prPXHcd10kHZA>
X-ME-Received: <xmr:V-ONZo4fb09CeoSAiS5HJ3LfM-CAoBFL2KRXyeObo6FtStQkJrODg2Zlf99Mw6K3NmL9lYbYXU--ekvXO9dxBpdVdIRlCtWX-7DA98iZ_s8ACfS1cIsHM8J2>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrfedtgdegiecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtggfuhfgjffevgffkfhfvofesthhqmhdthhdtjeenucfhrhhomhepofgrrhhk ucfpohhtthhinhhghhgrmhcuoehmnhhothesmhhnohhtrdhnvghtqeenucggtffrrghtth gvrhhnpeevhfevkeeluedvheelgeeuvedvteevheffleehfffhuefftedttedtteffudef ieenucffohhmrghinheplhhinhhkvgguihhnrdgtohhmpdhmnhhothdrnhgvthenucevlh hushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmnhhothesmhhn ohhtrdhnvght
X-ME-Proxy: <xmx:V-ONZp1vdShY6XXwbL2hIS98mHORqHYnVLqsf2aLH5mW8OU9YP2yqw> <xmx:V-ONZjFYRwMVv5H23fiCYUZj2CeOPjjhyeoScJZelo0SVfe45dBZtQ> <xmx:V-ONZi8vr8prfHbGeovYac67gKQJURStM24URGQcR1b2iKe6AUMoYw> <xmx:V-ONZoni7GS9m7ShEMdDvDgj8tXNvO1qLivboGt_YcRLGPvZuHrg_Q> <xmx:WOONZrCrVtf5ZxM_51i2rcPxJOfsVS0VL2FzX3f4Dn_5sKHIPXX2X6mn>
Feedback-ID: ie6694242:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 9 Jul 2024 21:26:46 -0400 (EDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.600.62\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <CAEmMwDzHKF=ZP4t80YMB9F_Y3kNie2HLR_11eiYPr5+cLGagqw@mail.gmail.com>
Date: Wed, 10 Jul 2024 11:26:43 +1000
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <AE0EDA5C-717E-4EE2-980D-E911B1B28CA6@mnot.net>
References: <CAEmMwDwFmK_wuQg4gnjj4rbVr5Wb_m+f3MFuTXFmA7ZMCvMKEA@mail.gmail.com> <AFB140A5-1611-49ED-9C33-9E5675201286@mnot.net> <CAEmMwDzHKF=ZP4t80YMB9F_Y3kNie2HLR_11eiYPr5+cLGagqw@mail.gmail.com>
To: Rory Hewitt <rory.hewitt@gmail.com>
X-Mailer: Apple Mail (2.3774.600.62)
X-W3C-Hub-DKIM-Status: validation passed: (address=mnot@mnot.net domain=mnot.net), signature is good
X-W3C-Hub-DKIM-Status: validation passed: (address=mnot@mnot.net domain=messagingengine.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-9.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, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_IRR=-3, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1sRM6e-00GYS4-0a 78938286675ba746c267562779f6545b
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/AE0EDA5C-717E-4EE2-980D-E911B1B28CA6@mnot.net>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52068
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>

> On 10 Jul 2024, at 2:33 AM, Rory Hewitt <rory.hewitt@gmail.com> wrote:
> 
> 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.

The Variants header took that approach -- the WG came to the conclusion that it wasn't workable, due to the complexity and difficult in understanding. This is an attempt to split it up and simplify the space, and it seems to be getting traction (e.g., partial prototyping in Chrome).

> 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?

As the draft says, it's just a convention. The field names aren't automatically processed.

Cheers,

> 
> 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

--
Mark Nottingham   https://www.mnot.net/