Re: Requesting change to Accept-Encoding [was Re: Compression Dictionaries draft 04]

Patrick Meenan <patmeenan@gmail.com> Tue, 21 May 2024 23:44 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=ietf.org@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 C9BD1C1C3D56 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 21 May 2024 16:44:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.848
X-Spam-Level:
X-Spam-Status: No, score=-7.848 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.249, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-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="fYJu9GVF"; dkim=pass (2048-bit key) header.d=w3.org header.b="P60TL6+B"; dkim=pass (2048-bit key) header.d=gmail.com header.b="VIXbZlTj"
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 dkpdbxKWg_fC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 21 May 2024 16:44:19 -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 D37FDC19ECBE for <httpbisa-archive-bis2Juki@ietf.org>; Tue, 21 May 2024 16:44:18 -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=iBROgWS3OzHxUJV45Ie79jyZSxSXxQxdudob6Np8vaA=; b=fYJu9GVF0L5EPJzYiDWQORtcfv /rtcx9ud9t0evwXfAaY3j2xXtBKAaCO8wA4NB6tkcUmM/wQp+zw/OTRR6tDrqJC6yw7DiJx5cXMjS ng/Oka/NR+G35LHI9fq4qypJPfu4x4uE9889o/qDcDm372Nl+Ydjj9gzhkuwBZZZgmDbU9VUlEBoY OLMSg/0YofBXfKttTLg9kJG1ManBtfbdodD3piXwfS9tRBRvtCabK570dkaU8rtV0rkY9tP/NLE+H fEaVERbV0qUXZXyV+FKaS+v31WDaKfCuHxKPfqn1YVNjN+nhgtzGblvZEDrvDK0t2/taz1xM5do/n E3oKEbaQ==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1s9Z8s-00GJHg-0w for ietf-http-wg-dist@listhub.w3.org; Tue, 21 May 2024 23:43:38 +0000
Resent-Date: Tue, 21 May 2024 23:43:38 +0000
Resent-Message-Id: <E1s9Z8s-00GJHg-0w@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 <patmeenan@gmail.com>) id 1s9Z8r-00GJGh-0H for ietf-http-wg@listhub.w3.internal; Tue, 21 May 2024 23:43:37 +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=iBROgWS3OzHxUJV45Ie79jyZSxSXxQxdudob6Np8vaA=; t=1716335017; x=1717199017; b=P60TL6+BRePGiZ3G3aRJ7ZxBU+tEc3IMUVxpx9Fw8ZAzJaVTQanTyFryRopUv2yFyry6Rrkdlpw J8Lrt6GCXdDCcc3EjRK7mtZeTzDnSqKmcxT+HcZXuVYYlImeuK0laeAAoO+6bcL/8XbA0C2sJOPyV JPzvR59SdbnZ2RNjFjSO/1yxSud6EXqkw6ZrrvKqvr0vDn5YJTyZ9zCeN0w/0iagGWA6rIEyif40g xqkNIJ+3egzGx2hHqLR/vhmq83vFW9JJeBP8FzAeoXuG8N0wrb7dV+Y20yDJyTPXJ3ZQ3sm79DtsS kdLYIRu7zymf3WEAhOSaF6r3J8H9+PDRTp0A==;
Received-SPF: pass (puck.w3.org: domain of gmail.com designates 2a00:1450:4864:20::630 as permitted sender) client-ip=2a00:1450:4864:20::630; envelope-from=patmeenan@gmail.com; helo=mail-ej1-x630.google.com;
Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <patmeenan@gmail.com>) id 1s9Z8q-00HCtZ-0p for ietf-http-wg@w3.org; Tue, 21 May 2024 23:43:36 +0000
Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-a59cdd185b9so66187766b.1 for <ietf-http-wg@w3.org>; Tue, 21 May 2024 16:43:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716335012; x=1716939812; 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=iBROgWS3OzHxUJV45Ie79jyZSxSXxQxdudob6Np8vaA=; b=VIXbZlTjIcaThE2jgncgEQdsWCGjE8aCctaF96yADARu7P7aKOE/yCXjWPFd1EvOs7 JGjafQ80h950u6rVZ013xhqbKGln1uvTCLVCwI0wTShaL8Q/4ULdZsyRZRPFiDYdLwVN l5vvOijejBQYcxEkkiXDqUvNzYtE8KirRXG0mrh2VEHcTla/8ox89qcS7cAe/ggyNhCq 5H2Wcxq2f4SUIuI1c+VE7EMf0/Fao71Ig87pgqtDvap3ATl1imlhv5YhcwYtW0BWDuk9 53tBhX7x1Zkzne72nEUG+6CvKaENX9arkCkL8ctlLzG4Th+itFMW3BiSw0HqvPS4A1UP /ARw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716335012; x=1716939812; 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=iBROgWS3OzHxUJV45Ie79jyZSxSXxQxdudob6Np8vaA=; b=D4NOr/QcjfmgZGbcLMrmD4nZxJxHjXV3iCEC6rRMDEdL64QkgfbpUWyr8P4JhT9TPt I5RsXtadRzAd5UbtkuHSsUwOX1dKKgSZmxHLT4pN4TSsvlXqkR7XX9qZIVm7Mmdd6Vfx WiFpAIGbIigwpFOOUsvpTWdeNqRlnSgwGgtxUbDqTeHxYh8qeubZslpWTx8NuCVIasSo 5mAOwS/2fLB5oQtzzvqxSspevxTPaP5AJYG9Q2DGECNf2QkaziCEdZDmuTu27C+wkrWr tQJUJ0qXI+qbOZXkK04sOWzxjyr/WgPrSlVyTTLuHNR/dEoMwFXyexXIQv/iwWNQj5aH XSeg==
X-Gm-Message-State: AOJu0YwiarvcX3vHm+PbtwDlhDIYrsBKzcCtSEhhWXcT5PBSsMXzRHMf kqRZko1kebcZ4bpS8vFcGQPHq/g3tLKKy+PizE217gXLgqYQshxdxwpfo8si3640bwbbtiGhB1e 640N5e3cWa/4mE2G/tY8p8JiCT9H1zA==
X-Google-Smtp-Source: AGHT+IFmsPVP5NE+MQP8z+SPYOWIn3QbGJcJt1O8MgFuGGa+DBQAMUcz2JNYpaPqIX6tprnG7rxU3EkYwukSgRbs9xc=
X-Received: by 2002:a17:906:d114:b0:a59:c807:72d3 with SMTP id a640c23a62f3a-a622314979amr35973466b.17.1716335011877; Tue, 21 May 2024 16:43:31 -0700 (PDT)
MIME-Version: 1.0
References: <CAJV+MGwvDCxS6D0Cxi=oGYwpXH1N7RJ9wwDRwj8Lieotz315Ag@mail.gmail.com> <6E4C10C3-C3BA-43FD-96AA-5EECE2B2BB13@gbiv.com>
In-Reply-To: <6E4C10C3-C3BA-43FD-96AA-5EECE2B2BB13@gbiv.com>
From: Patrick Meenan <patmeenan@gmail.com>
Date: Tue, 21 May 2024 19:43:20 -0400
Message-ID: <CAJV+MGwZ0y7gGifAbC2zpn=3rXA0OQpeh3mpKaR6PGQ=7NirVw@mail.gmail.com>
To: "Roy T. Fielding" <fielding@gbiv.com>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="000000000000b2ddaa0618ff62ba"
X-W3C-Hub-DKIM-Status: validation passed: (address=patmeenan@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_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1s9Z8q-00HCtZ-0p 028231c580ee8a346c22706638af7a81
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Requesting change to Accept-Encoding [was Re: Compression Dictionaries draft 04]
Archived-At: <https://www.w3.org/mid/CAJV+MGwZ0y7gGifAbC2zpn=3rXA0OQpeh3mpKaR6PGQ=7NirVw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/51958
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>

Thanks. I'll get that rolled into the next draft. That matches what Chrome
does in the current trial and makes it clear that the dictionary encodings
are only available when there's a dictionary to use.

On Tue, May 21, 2024 at 6:38 PM Roy T. Fielding <fielding@gbiv.com> wrote:

> > On May 20, 2024, at 7:49 AM, Patrick Meenan <patmeenan@gmail.com> wrote:
> >
> > FYI, draft 04 of the compression dictionaries spec was just released:
> https://datatracker.ietf.org/doc/draft-ietf-httpbis-compression-dictionary/
> >
> > The changes since draft 03 are:
> >
> > - Added link relation ("compression-dictionary")
> > - Moved the dictionary hash into the response payload and removed the
> "Compression-Dictionary" response header
> > - Changed content-encodings to "dcb" and "dcz"
> > - Specified the compression window settings for Zstandard and Brotli
> >
> > We're converging on a final spec and the Chrome origin trials to-date
> have been extremely positive.
> >
> > There is one remaining discussion topic that I'm aware of which is
> around the compression algorithms that we spec and if we should collapse to
> a single algorithm and manage fragmentation at the spec level:
> https://github.com/httpwg/http-extensions/issues/2756
> >
> > If you're aware of any other issues or have concerns with something else
> in the spec, please let us know. Otherwise we're hoping to come to an
> agreement on the compression algorithms and then move towards last call and
> RFC.
>
>
> A server can send Use-As-Dictionary when applicable to any response,
> regardless of Accept-Encoding or user agent. This allows the original
> 200 response to be delivered without unnecessary Vary, and by edge
> caches that might have no knowledge of dictionaries. That's great.
>
> However, I would like to change the protocol in 6.1 (Accept-Encoding)
> to require the following:
>
>  o When (and only when) a client has a stored dictionary that
>    matches a request, it can send Available-Dictionary and
>    Accept-Encoding with its dictionary-compression encodings.
>
>  o When a client does not have a stored dictionary that matches
>    the request, or chooses not to use one for the request,
>    the client MUST NOT send its dictionary-compression
>    algorithms in Accept-Encoding.
>
> IOW, I would require that clients not advertise their implemented
> dictionary-compression encodings in Accept-Encoding for requests
> that do not desire a dictionary-compression response, since such
> unnecessary variance in HTTP can have a critical impact on caching.
> This is consistent with the semantics of Accept-Encoding.
>
> This change would allow dictionary-based compression to be deployed
> for existing resources and existing CDNs without causing a
> factorial expansion of Vary. IOW, it allows dictionary-compression
> to be deployed without impacting the cacheability of resources
> for non-dictionary-using clients.
>
> The one negative is that it lessens the ability to detect when
> dictionary-compression is usable before a dictionary is provided.
> I am pretty sure we don't need that.
>
> A 200 response that has been dictionary-compressed would, of course,
> still be marked with "Vary: Accept-Encoding, Available-Dictionary"
> and the chosen encoding given in "Content-Encoding". This would
> not be affected by the above change.
>
> The possibility of multiple cached responses for a given response,
> each with its own Vary from its original request, is already defined
> by HTTP caching. I doubt that everyone implements it correctly,
> but that's not unusual. There's no other correct choice given how
> origin servers select negotiable content.
>
> Cheers,
>
> ....Roy T. Fielding, Senior Principal Scientist, Adobe
>
>