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

Mark Nottingham <mnot@mnot.net> Tue, 09 July 2024 07:30 UTC

Received: by ietfa.amsl.com (Postfix) id A1667C18DBB7; Tue, 9 Jul 2024 00:30:55 -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 A099CC18DBA0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 9 Jul 2024 00:30:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.857
X-Spam-Level:
X-Spam-Status: No, score=-2.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, MAILING_LIST_MULTI=-1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, 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="DKBeUBWQ"; dkim=pass (2048-bit key) header.d=w3.org header.b="Upz9jH7g"; dkim=pass (2048-bit key) header.d=mnot.net header.b="qMt/0bJO"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="hKbgP9LA"
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 6ZHf2SHmwVNC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 9 Jul 2024 00:30:51 -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 27C43C18DBBF for <httpbisa-archive-bis2Juki@ietf.org>; Tue, 9 Jul 2024 00:30:51 -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=oeNqwxo9ggas/8s+zKLZqgiE/+7f0gqKTYdCcUyJj8s=; b=DKBeUBWQ7m8IGWByxzPI0porQd M5I5uvAjpataOWC4Sqlakgs87nVahLzjYWLrB6tYITlEjTkxhefmBbP0p4QP2dfAnQWEylqowzoaL A5nb9rXGAQXyZ6a9s0DPTtIRrlHNPcHO4+RIf9VMMYnPzCFCQqx9kvSEN3DrRaqu3CPb56iAE7IxP SwKnERe2neG+tYC0eCREUN3V0jQkt214kNnDb35UcBTzMZMOknu6S1U3RoYjI13ric+48gN3O3leT Z9GjbVdyvd0IUwYwVJtJPwfiPlc705D+ZpOPjoreSp7UgnRuVF86KfIYuRAxVg4+D2Xa21n8SwHHN eQ0iYsWQ==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1sR5IR-00CIQA-2j for ietf-http-wg-dist@listhub.w3.org; Tue, 09 Jul 2024 07:29:55 +0000
Resent-Date: Tue, 09 Jul 2024 07:29:55 +0000
Resent-Message-Id: <E1sR5IR-00CIQA-2j@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 1sR5IQ-00CIP9-1r for ietf-http-wg@listhub.w3.internal; Tue, 09 Jul 2024 07:29:54 +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=oeNqwxo9ggas/8s+zKLZqgiE/+7f0gqKTYdCcUyJj8s=; t=1720510194; x=1721374194; b=Upz9jH7gM6f6TDGO3T7CBidJ8jza18XheCpZQubz18PkU215oZDWPn0aCG6FH5aGZsx+F1Ts8WA 9q6atxOUY31p84XrZdroQq7+hOCNC25nE3BQyCFTHZv0BtisPj99vqzr8a/8qFK5Gn1GdK156DFAO HQafhXhbKEqHoxDGtjyc9GnQqUWgCibMRdUE/oxmbElQplN53c1CjvObGtavEk6wG8KtGRhQ/GeRU nxCT3pPYJFUOqiIH1c4jgfnWr7zAiFlkafOZ1PqfBLxGgSphRNA3XbRbukJTLK2gJF5hSi24WZSfK Z/xiT9uIpg6GZ79wf8PnHKpmWKS7V3Y3n8wA==;
Received-SPF: pass (puck.w3.org: domain of mnot.net designates 103.168.172.152 as permitted sender) client-ip=103.168.172.152; envelope-from=mnot@mnot.net; helo=fhigh1-smtp.messagingengine.com;
Received: from fhigh1-smtp.messagingengine.com ([103.168.172.152]) 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 1sR5IP-00GF7o-2W for ietf-http-wg@w3.org; Tue, 09 Jul 2024 07:29:54 +0000
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 79345114264C; Tue, 9 Jul 2024 03:29:50 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Tue, 09 Jul 2024 03:29:50 -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=1720510190; x=1720596590; bh=oeNqwxo9ggas/8s+zKLZqgiE/+7f0gqKTYdCcUyJj8s=; b= qMt/0bJOUN9iNPtEeV/LcEXWYdIcu9cL3C2xybk7XXQ2pJU5DU4Zn5DUQAuLSbE6 eRYvfpl//fGqhHN1frr1VDVUjkeXFfCwHVNlGRIb463aqRetVyy6AFu+8plBvJgU JWfpI1N/czHOxZpZVBAKFjkPX3tqTIZDB5il2uCLux0Ec/gxJ1xAOr1QE2S8SgdI H4JfoRLF/ifiqyCT/o0knQf3xsPulrmH26h3eFjAVI6hmuTQcFgVQmnYirpcLG+D 5fOTU+Aj5ljaXBbHfarv3N5/C5qhiN0CE2zGzw2Ut11vRvTpl1r8Sg9vnuDyrgUT +/9Dwy61L7W3cBttEYjXxA==
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=1720510190; x= 1720596590; bh=oeNqwxo9ggas/8s+zKLZqgiE/+7f0gqKTYdCcUyJj8s=; b=h KbgP9LA6fKxbdeaQNniNY9l91dsw4gZAjZpyBzG3kz0rMYmVboP+d+QyYY9Apn3d zqMvkVJDIIrshJmJFxbzArlkKyfgjT56Z+ePnHlxKVZG6JZ6SZHeGpV5Cvb9BBxd 3D/kevVqYZo6nxMoMCutxgW/xC4OGbBG6BGpY+b/wTI2n9Zl5Hxi38hIFSHnkYrt FwQvGrOUSCrU2VHk5AnkESvTxQDcy7dhq+Rm1a4MCxsoiKnp+Tyj2Q5xPDJbaaZ/ NV5ZW4Q9wtvgrzDKXuAw3swrTTCDnfs/WOiFA3LpgInNw73lddZyeA/vO1R6BVIE apvQ0nBvrrpyPeWIsJvxQ==
X-ME-Sender: <xms:7eaMZmYBR8hGPHbn748zQn-pkXwQey65QAsxQDNXhIPDMRuW6GKZbA> <xme:7eaMZpZYexfsnvcAGf9ixiYT0fu6KgYFoOgEUeF9vvLOe1B5MZRIrbONX_ia0HJBs _s-Z8HFIw179SBxlQ>
X-ME-Received: <xmr:7eaMZg_Uw4b9ZoZNjkfpooszpJJX5qwejUOywrn0U1gk4sgdtt_uPd5DBHf2SUGU1TE5J-TffobytaBKV1CBLylIInuQLHZp73kS7gube6od8O0N7dqK-OLp>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdekgdduvddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptggguffhjgffvefgkfhfvffosehtqhhmtdhhtdejnecuhfhrohhmpeforghr khcupfhothhtihhnghhhrghmuceomhhnohhtsehmnhhothdrnhgvtheqnecuggftrfgrth htvghrnhepvefhveekleeuvdehleegueevvdetveehffelheffhfeuffettdettdetffdu feeinecuffhomhgrihhnpehlihhnkhgvughinhdrtghomhdpmhhnohhtrdhnvghtnecuve hluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhhnohhtsehm nhhothdrnhgvth
X-ME-Proxy: <xmx:7eaMZoownhZ0MlnXOs2BiOL4-SltBHNuHxPC47a5Bvt3Dn0i5ebaag> <xmx:7eaMZhprcmhde7FtrFIx9f8EDZULgmLLjW5eXX3zptptGTImvKO-Ow> <xmx:7eaMZmSSzw1NIVb0HK6CeFsfySwzUPDLTcxI7qpJaFEtNqa_CsLWJw> <xmx:7eaMZhq-tH3q1-QobbHWAJsgtO04vBNE5yfka6q3lTZkvOsj1D33CA> <xmx:7uaMZoVgyt1SPtMmeu1f4EhQ0NecY_aBcvv5VrPZlnR6chC8l5oT6bYP>
Feedback-ID: ie6694242:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 9 Jul 2024 03:29:47 -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: <CAEmMwDwFmK_wuQg4gnjj4rbVr5Wb_m+f3MFuTXFmA7ZMCvMKEA@mail.gmail.com>
Date: Tue, 09 Jul 2024 17:29:44 +1000
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <AFB140A5-1611-49ED-9C33-9E5675201286@mnot.net>
References: <CAEmMwDwFmK_wuQg4gnjj4rbVr5Wb_m+f3MFuTXFmA7ZMCvMKEA@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_MSPIKE_H2=-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 1sR5IP-00GF7o-2W b7e14fc7e6337ac0bf70c0e5f5c119e0
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/AFB140A5-1611-49ED-9C33-9E5675201286@mnot.net>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52056
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>

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/