Re: New precondition fields and caching

Martin Thomson <mt@lowentropy.net> Mon, 07 September 2020 06:32 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 4EE593A15B5 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 6 Sep 2020 23:32:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.749
X-Spam-Level:
X-Spam-Status: No, score=-2.749 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=j2eamHfw; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=njYOtDyC
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 BlDisvPN55v0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 6 Sep 2020 23:32:23 -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 BB32C3A15B4 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 6 Sep 2020 23:32:23 -0700 (PDT)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1kFAhH-0005TJ-1E for ietf-http-wg-dist@listhub.w3.org; Mon, 07 Sep 2020 06:32:11 +0000
Resent-Date: Mon, 07 Sep 2020 06:32:11 +0000
Resent-Message-Id: <E1kFAhH-0005TJ-1E@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 <mt@lowentropy.net>) id 1kFAhF-0005SY-St for ietf-http-wg@listhub.w3.org; Mon, 07 Sep 2020 06:32:09 +0000
Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mt@lowentropy.net>) id 1kFAhE-00027V-5w for ietf-http-wg@w3.org; Mon, 07 Sep 2020 06:32:09 +0000
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 6FFEA5C0054; Mon, 7 Sep 2020 02:31:57 -0400 (EDT)
Received: from imap10 ([10.202.2.60]) by compute2.internal (MEProxy); Mon, 07 Sep 2020 02:31:57 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=mime-version:message-id:in-reply-to:references:date:from:to :cc:subject:content-type; s=fm3; bh=iIwagMpzK/l9Z2Xths99MmghyIMu WniIMryhOtW/YrM=; b=j2eamHfwMtLcMJmX/FDSpNZzjysKKFMWBDmH26DcOBwB f42qJ3LNZqE3R/BvbnCqMNjyHhaqBhidTqYK3HGg+y4MVZiDXPdkJgQPQT6MW5L4 jJuivNhrIypH0lLzg9bjaf3IXQiWrmYFIpzPU/ZI7KhYsQmiaUs6INPN9Z4Cj4Vo IjoQCgHpAnmNQ+fRkkqfh4afHNl6rWY4RtHvMUkyEyGvum3HZaqxT0JxTHm5bQ4v kvP7MlNHuhY1SwMCp2LabL0cMmPkGgscsWy7TeM1nlyNtJMdMlT+r8121BWVwB0I /oaikdRtmvvFuEYpKava4h6dCy9b4Y1oaQLZN34+sg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=iIwagM pzK/l9Z2Xths99MmghyIMuWniIMryhOtW/YrM=; b=njYOtDyCkS/3AvM90oMlRw g2KBPE46gxtRC/Tn3FXTJsBW8xHF8LTNVEWOeObFs0mecI8xWufkSDGDctSEZOWF sE8pEHz/vbTz1hd5QsbUeFoo9W9QE1ZjAETDHv3Ywe1UGg0KusqqHFMSZgaG0A9k 3G3IjH7twGA0eVq0o1FMS3s6eJzRYMw9NsiL1ApZGjE7wyHxCX4oSnxYgUTlHI48 THA4Zdmnobbg/OEPgCTblaigmCeHCIGTuOc7jqmS3M8kokj8k2AN33nksxy9V5/K nw4TF3Vkel3IGz5PIFHF6oOnoRqRqu4/bOCTkY7LHVfDrVAbn3WJS4xYxfAZZmQg ==
X-ME-Sender: <xms:3dNVX8qNQYq_YQ-u0y9sTKzLjZK0UtjPF5C3BZpG45_HjvzjMWK3pg> <xme:3dNVXyr3eu1wPMXFY38dOFq2MCEIf5vqiP398NR8W7ukYmS694rQfxSPEkI6FmopU qkydkmYjNHttpE1M1c>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegledgheeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvffutgesthdtredtreertdenucfhrhhomhepfdforghr thhinhcuvfhhohhmshhonhdfuceomhhtsehlohifvghnthhrohhphidrnhgvtheqnecugg ftrfgrthhtvghrnheptdelgeeigfejkeduleekgfffgfevudekudetgfekvedvhfduiefh veehheeuffetnecuffhomhgrihhnpehhthhtphifghdrohhrghenucevlhhushhtvghruf hiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmtheslhhofigvnhhtrhhophih rdhnvght
X-ME-Proxy: <xmx:3dNVXxNRg9WcVIEb1_WRCAFrM4-aVWf-DSZTtBUajbUkDsDh1eHCXg> <xmx:3dNVXz4DKGBiOme_WE4rOPlm8e-dTDNJ5cbdJ2HLbayvU8c3Tm4Nmg> <xmx:3dNVX77ZXuHnPNfVLkThF8wYNZ7WFFKodJ9CO0dCpO96czGeQGsMmQ> <xmx:3dNVX0UlMzsjtiCOj6eMgWhqEJ0QchO9nZcQt5kgr4_nYE9eE7ge6Q>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 01B6620072; Mon, 7 Sep 2020 02:31:57 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.3.0-259-g88fbbfa-fm-20200903.003-g88fbbfa3
Mime-Version: 1.0
Message-Id: <48205d24-46b5-488d-b13b-a0a7d005a556@www.fastmail.com>
In-Reply-To: <A33B6430-22A0-4FAB-82BC-85D86A5FBC6D@mnot.net>
References: <7c1e8964-1a4b-42e6-8af1-fc7a4e43ce14@www.fastmail.com> <A33B6430-22A0-4FAB-82BC-85D86A5FBC6D@mnot.net>
Date: Mon, 07 Sep 2020 16:31:36 +1000
From: "Martin Thomson" <mt@lowentropy.net>
To: "Mark Nottingham" <mnot@mnot.net>
Cc: ietf-http-wg@w3.org
Content-Type: text/plain
Received-SPF: pass client-ip=66.111.4.25; envelope-from=mt@lowentropy.net; helo=out1-smtp.messagingengine.com
X-W3C-Hub-Spam-Status: No, score=-9.8
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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_IRR=-3, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1kFAhE-00027V-5w d1ecfed0c02aa30b2acd1cf028ee891a
X-Original-To: ietf-http-wg@w3.org
Subject: Re: New precondition fields and caching
Archived-At: <https://www.w3.org/mid/48205d24-46b5-488d-b13b-a0a7d005a556@www.fastmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/38020
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>


On Mon, Sep 7, 2020, at 16:25, Mark Nottingham wrote:
> > Assuming that interpretation is valid, how is this reconciled with existing uses of validation?  If-None-Match and If-Modified-Since specifically, which never in practice get recorded in Vary (at least not as far as I can tell).  Is it that we effectively bless these fields and require caches to understand them?
> 
> Yes. You effectively need to introduce a new protocol version to 
> introduce a new precondition, if you want to make its handling 
> mandatory. Designing them so that ignoring the precondition doesn't 
> break anything is the only workaround. They are evaluated completely 
> separately from conneg.

Shouldn't the specification say that explicitly?
 
> > Separately:
> > 
> > The guidance for new fields suggests that definitions should consider where those fields are applicable.  The current semantics draft just describes each of the existing preconditions as "request header fields", while avoiding being definitional.  There is no text that says addresses the question of where they appear directly, even generic text.  That doesn't seem especially explicit, but is that enough?
> 
> Can you link to where you're talking about?

https://httpwg.org/http-core/draft-ietf-httpbis-semantics-latest.html#preconditions says:

> A conditional request is an HTTP request with one or more request header fields that indicate a precondition to be tested before applying the request method to the target resource. 

It says "request header fields" here and in the definition of each, but it doesn't really say that these fields are only valid when in request headers anywhere that I can see.