Re: New Version Notification for draft-kazuho-early-hints-status-code-00.txt

Cory Benfield <cory@lukasa.co.uk> Wed, 02 November 2016 17:02 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 55436129446 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 2 Nov 2016 10:02:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.398
X-Spam-Level:
X-Spam-Status: No, score=-8.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-1.497, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lukasa-co-uk.20150623.gappssmtp.com
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 wpL1BLreIKID for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 2 Nov 2016 10:02:50 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E88D7129432 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 2 Nov 2016 09:55:14 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1c1ykZ-0006po-QU for ietf-http-wg-dist@listhub.w3.org; Wed, 02 Nov 2016 16:50:55 +0000
Resent-Date: Wed, 02 Nov 2016 16:50:55 +0000
Resent-Message-Id: <E1c1ykZ-0006po-QU@frink.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by frink.w3.org with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <cory@lukasa.co.uk>) id 1c1ykT-0006n1-Qj for ietf-http-wg@listhub.w3.org; Wed, 02 Nov 2016 16:50:49 +0000
Received: from mail-wm0-f42.google.com ([74.125.82.42]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <cory@lukasa.co.uk>) id 1c1ykN-0006gX-LT for ietf-http-wg@w3.org; Wed, 02 Nov 2016 16:50:44 +0000
Received: by mail-wm0-f42.google.com with SMTP id t79so49388857wmt.0 for <ietf-http-wg@w3.org>; Wed, 02 Nov 2016 09:50:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lukasa-co-uk.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=DlXs/Gr4dCU8Twq3byUO2kT9yKdumBFHAzB5MYK4zTM=; b=KkscQJc2N6WV6aMrwJPJUqI6MBdiAZMOrDtyHhcyRIdvtr3kmqisVf9Ot2tMgl2SAj +qKhBITI9I3KWwlFwJ+NQqX6NrirC5BoGLkw9TDdwnS81TnIJ7h8uZ8IIC+OxjRwPuY0 azE0ZaY5KNcXPSECM2FhRrS3OJDFslnubC/yUKH68Npq7BhLdCwjqkRhYOOQbVRedjU8 x3XjsZ+nWA8PfNp49PxXdhbQWj7z8SjBruNljMa8St/Dt0V1WAvX4Nljyo6MhBEyM/4m p3+TAx1zMZ4QGVVDqLDTJrjZ1IBo2m4+2bi0rHvTu1IMhfKdzUX3o9sjd1FJA+uDxz2n vgGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=DlXs/Gr4dCU8Twq3byUO2kT9yKdumBFHAzB5MYK4zTM=; b=MswLb/x3rRlbebjhMstUBTwBQZuylBTIU2pRRVOBNI3B/nbHPFq3mdnAErijc5aAUx UaW/SdjG3tcpwY2gghX16G+eC1FLcGDjWp45JbzzWKfewgJe0siy47k9iutEChv62/8i GdRgKeUvF26g52ijJ2pHOaGND0IQcMm24KZRdwbPTiqRXfISr8uEHqsDaLU9M6AHMBV2 iqJi6kbFPVji+vuxeZNc9t0vlLyeBAeYKVIUW0zjj/piPRCaUIoErdo+KdqOnkE+aEEg /Hccdb6nLJ5+d1PxElMIhMe6Zq2B3ZWxuqA1WNwLpI0zYDXVpV47jjSXcRTbo20/c2Ya wtWQ==
X-Gm-Message-State: ABUngvdWmDdLITSrEO+hlpVHEsQFrp+HGvqFQ/4Q/dpZM0rNlq931xyIVAtZfAOwChTcCg==
X-Received: by 10.28.107.129 with SMTP id a1mr3924873wmi.90.1478105416813; Wed, 02 Nov 2016 09:50:16 -0700 (PDT)
Received: from [192.168.1.5] (72.6.208.46.dyn.plus.net. [46.208.6.72]) by smtp.gmail.com with ESMTPSA id ia7sm3443764wjb.23.2016.11.02.09.50.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 02 Nov 2016 09:50:16 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\))
From: Cory Benfield <cory@lukasa.co.uk>
In-Reply-To: <20161102165359.4f837bdb@ginster>
Date: Wed, 02 Nov 2016 16:50:14 +0000
Cc: ietf-http-wg@w3.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <DF0B67A0-8424-4EB3-A730-4971BDDFB93B@lukasa.co.uk>
References: <147792294052.32397.15544665152412530374.idtracker@ietfa.amsl.com> <CANatvzwm_T-HW0yT1MAWEUrfw5OAVkmAZe890575qg8HuU9Z_Q@mail.gmail.com> <86447165-100C-407D-8512-A32F93B11BBA@lukasa.co.uk> <CANatvzzRvbEjy4AqDHeRtQfcJX0Ls14qJf0qv0QWZBMMd-HRnQ@mail.gmail.com> <5f155947-e74c-0761-b5d4-64f8aabec846@gmx.de> <F2EE2E10-9129-47D4-8C6E-BEE079503F34@lukasa.co.uk> <86EAA775-324C-41C9-87E0-9D04E51EE141@gbiv.com> <5D00C20A-0421-406A-AE2A-79E713507D02@lukasa.co.uk> <20161102165359.4f837bdb@ginster>
To: Werner Baumann <werner.baumann@onlinehome.de>
X-Mailer: Apple Mail (2.3251)
Received-SPF: pass client-ip=74.125.82.42; envelope-from=cory@lukasa.co.uk; helo=mail-wm0-f42.google.com
X-W3C-Hub-Spam-Status: No, score=-3.9
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1c1ykN-0006gX-LT 67da1dc2afc69ebb53cfdf0a82d3c934
X-Original-To: ietf-http-wg@w3.org
Subject: Re: New Version Notification for draft-kazuho-early-hints-status-code-00.txt
Archived-At: <http://www.w3.org/mid/DF0B67A0-8424-4EB3-A730-4971BDDFB93B@lukasa.co.uk>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/32811
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: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

> On 2 Nov 2016, at 15:53, Werner Baumann <werner.baumann@onlinehome.de> wrote:
> 
> Am Wed, 2 Nov 2016 09:59:53 +0000
> schrieb Cory Benfield <cory@lukasa.co.uk>:
>> (Vaguely relatedly, Roy, your assertion that these implementations
>> fail because “their developers can’t read” is one of the most grossly
>> petty things I’ve read on this mailing list. Most of the
>> implementations I’ve tested are open-source implementations that are
>> maintained by one-to-two developers, part time. It turns out that the
>> real world of implementing HTTP/1.1 is sufficiently complex that
>> writing code to support a feature that has been used literally zero
>> times prior to this moment was not high up the priority list of
>> implementers. So it’s not that they "can’t read", it’s that they
>> prioritised their work items to actually solve the problems their
>> users have, and “being served unexpected 1XX status codes” wasn’t on
>> that list. Clearly all us independent implementers are amateur-hour
>> hacks with no business being on the web.)
>> 
> I am the only developer of a WebDAV-client (davfs2) and I did read the
> spec.
> My project makes use of the Neon library, developed by a single person
> who did read the spec.
> I don't spend a lot of time reading the specs. I spend a lot of time
> writing workarounds for servers, who's implementers did not read the
> spec. And a great deal of user support is about buggy servers that
> conflict with the spec in an obvious way.

So your assertion is that…I didn’t read the specs? I can’t really parse this as anything other than you agreeing with the assertion that anyone who has written code that deviates from specification is an amateur-hour hack. That’s a little bit tricky for me to countenance, frankly. Mistakes, bugs, and deviations from specifications aren’t just common, they are the norm, and the less-common the specification feature is the more likely that there will be non-compliance. If it’s the case that both you and the Neon developers wrote your implementation completely to specification before you released it then frankly you are the exception, not the rule.

>> Well, firstly, let me note that all currently-specced 1XX status codes
>> *are* negotiated. While 100 Continue is allowed to be sent without an
>> “Expect” header requesting it, in practice it never is, so user-agents
>> that don’t send the “Expect" header will never see it. 

> The Expect-100 header does not tell the server that the client is able
> and willing to handle 100 Continue responses. It tells the server that
> the client will not send the body until it gets the OK from the server.
> Using a protocol feature is not negotiating it.

The sentence you’re quoting covers this. Specifically, I said (emphasis added by me for clarity): “while 100 Continue is allowed to be sent without an “Expect” header requesting it, *in practice it never is*”. This means that regardless of the fact that the protocol feature can be used spontaneously by servers, it isn’t. This is effectively equivalent to negotiation. If servers emitted 100 Continue in response to all POST/PUT requests I’d feel differently, but they don’t.

So while the specification doesn’t say that the Expect header doesn’t tell the server that the client is able to handle 100 responses, in practice that’s exactly how servers read it.

> Your argument sounds as if the preferred way to implement a protocol is
> to revers engineer the protocol from what you see on the wire.

I said no such thing, but regardless, this specific conversational thread is off topic for this list.