Re: Last Call: <draft-ietf-httpbis-early-hints-03.txt> (An HTTP Status Code for Indicating Hints) to Experimental RFC

Mark Nottingham <mnot@mnot.net> Tue, 27 June 2017 01:05 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 291F4127909 for <ietf@ietfa.amsl.com>; Mon, 26 Jun 2017 18:05:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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=mnot.net header.b=M684uoeC; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=PzaM0TP+
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 zW7zwH1vRxGg for <ietf@ietfa.amsl.com>; Mon, 26 Jun 2017 18:05:27 -0700 (PDT)
Received: from new1-smtp.messagingengine.com (new1-smtp.messagingengine.com [66.111.4.221]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1D23012741D for <ietf@ietf.org>; Mon, 26 Jun 2017 18:05:27 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailnew.nyi.internal (Postfix) with ESMTP id 768DF10F2; Mon, 26 Jun 2017 21:05:26 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute3.internal (MEProxy); Mon, 26 Jun 2017 21:05:26 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=bQw13jWofEUK1FLUQ3 UFxNnf9LAp2ctWRD0W1EHevfI=; b=M684uoeCZbr7oCmlT2PSRjsI7WdsMJ2l/i WRRRGWGD73p2xvIbDw44Ol8fDTBP2pffBDGLI6ngZdxMYg9QkmxAOmO9auH+wSMJ snh0b1KJeDh2xK26nNMI0FEek+Jm2u1GyZueY4T4fCJE2ruL4KgymTwjNxvDuPSc MUpNe705gNmAjCUimqGiYi9zgo9np4oPjVzmP4GUo7jxhjmnUjnjCty7GFVtK5Xh 3fn0pKrj9NlqZ56grDqDmFNcHGhconqApOPJS1e8DdVbh1x/s3jTMXFX+l2tYi98 joWI+VzH6BD0k8tkPQD6UrhsgV+xZIfYeapjJPF2V5Pv3102Eglw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=bQw13jWofEUK1FLUQ3UFxNnf9LAp2ctWRD0W1EHevfI=; b=PzaM0TP+ 0q8FejbO7B0qUSRBb18zoWUg0lG4UPcFTefZVv/Twfww0fC47+E8avQUlvzc3Qri aD55Kwtj0Q80q0MG3G5xPC0U77Nm3qdZtMfs9voYFsARou+7695Kyl7taosKPaH1 ePQi+YALwOCgrAHp8w1PGSSqVg4YX2zGDm5ACpsJgmiDzB0zkXsOB1nPMoF7qCO0 JgBtU+7MEWf5Ee2PtF19tuQATwOLYLyvgw132CHbyTWJCuZJGkVtJ5L9+l/MGnei jkadvDow0h9oc8FdwHruOXm+JvtscrxMwhabfs1kO7q98Qr3bxgkz2wjb0p6Qwq8 gBT4D5SKPxjp4Q==
X-ME-Sender: <xms:Vq9RWdfcm2sEPrfKERO9Nx-l2U6OI0BVO_Z6qui-78WzLEXj_D9M3A>
X-Sasl-enc: +Vzb9mVBnLpC1fubtjZ9Cb5bxvYbj4JTNDehenLfo/h6 1498525525
Received: from [192.168.1.18] (cpe-124-188-19-231.hdbq1.win.bigpond.net.au [124.188.19.231]) by mail.messagingengine.com (Postfix) with ESMTPA id 5E2F87E51B; Mon, 26 Jun 2017 21:05:24 -0400 (EDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Last Call: <draft-ietf-httpbis-early-hints-03.txt> (An HTTP Status Code for Indicating Hints) to Experimental RFC
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <CANatvzygaU9oiof3-5TqnWdxqXOGNyGqPvNhTnpPzYy391CzNw@mail.gmail.com>
Date: Tue, 27 Jun 2017 11:05:21 +1000
Cc: "Julian F. Reschke" <julian.reschke@gmx.de>, IETF Discussion Mailing List <ietf@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>, Alexey Melnikov <alexey.melnikov@isode.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <4042E64B-95FB-4866-BD0E-739DF21282CD@mnot.net>
References: <149806437201.15854.12299810594896460001.idtracker@ietfa.amsl.com> <dcdff226-e12d-bb83-982f-8253f46ae935@gmx.de> <CANatvzygaU9oiof3-5TqnWdxqXOGNyGqPvNhTnpPzYy391CzNw@mail.gmail.com>
To: Kazuho Oku <kazuhooku@gmail.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/v5oG6Gj6VcbCUlb3xUMuq845Ya0>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Jun 2017 01:05:30 -0000

> On 26 Jun 2017, at 12:39 pm, Kazuho Oku <kazuhooku@gmail.com> wrote:

> The reasons I added a clause prohibiting the use of hop-by-hop headers
> in an 103 response are as follows:
> * does not make sense for a response that attempts to send the
> metadata of a final response early
> * to avoid confusion caused by sending a hop-by-hop header in the 103 response
> 
> Without the restriction, a response like below would be valid, which
> IMO is confusing at least.
> 
> ```
> HTTP/1.1 103 Early Hints
> Connection: close
> Link: </style.css>; rel=preload
> 
> HTTP/1.1 200 OK
> Connection: close
> Link: </style.css>; rel=preload
> ...
> ```

Perhaps you could just give guidance that only the headers intended as early hints should be sent?


> The statement exists since sending 103 only makes sense when it is
> impossible to immediately send a final response.
> 
> For example, there is no need for a cache that is in possession of a
> freshly-cached final response to send a 103 that was sent from the
> origin before sending the final response. I also believe that most
> caching proxies that exist today do not cache informational responses,
> and that there is no need for us to require them to do so.
> 
> Considering the facts, one way to resolve the issue would be to adjust
> the statement to something like "An intermediary MAY omit the 103
> response when resending a cached response", and argue that re-sending
> a cached response is not an action of "forwarding," which is defined
> as a MUST in RFC 7231.
> 
> But wouldn't it be simpler to just have the "MAY drop" clause for any
> intermediary?

Re-specifying HTTP for a special case isn't a good idea. I think you could mention that gateways can decide not to forward a 103 response at their discretion / depending on their configuration, but I don't know if I'd put a requirement around it. Also, see below.

As an aside -- HTTP only specifies very general requirements for gateways; by their nature, they're black boxes (the back-end protocol *can* be HTTP, but it doesn't have to be, and how they connect the two sides in that case is also unspecified). So I wouldn't go into too much detail about their operation.


> Yes. They need to, especially if caching is involved. 103 is an
> intermediary response and there is no guarantee (or a requirement) for
> a cache to retain the headers included only in the informational
> response.
> 
> In case of link rel=preload headers, a client can speculatively load
> the resources included in the headers while revalidating a
> stale-cached response, or a caching proxy can generate a 103 response
> from a stale-cached 200 response, while waiting for the origin to
> perform revalidation.

The underlying problem here is that the caching model doesn't talk about final and non-final responses. 

I've raised <https://github.com/httpwg/http11bis/issues/29>. I don't think that you need to specify anything about this.


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