Re: #468 p2: Expectation extensions

Julian Reschke <julian.reschke@gmx.de> Thu, 12 September 2013 08:38 UTC

Return-Path: <ietf-http-wg-request@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 AB59E21E818F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 12 Sep 2013 01:38:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cqiWYAt0ruBC for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 12 Sep 2013 01:38:12 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 470D121E8155 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 12 Sep 2013 01:38:12 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1VK2Ot-0006Ee-NH for ietf-http-wg-dist@listhub.w3.org; Thu, 12 Sep 2013 08:37:19 +0000
Resent-Date: Thu, 12 Sep 2013 08:37:19 +0000
Resent-Message-Id: <E1VK2Ot-0006Ee-NH@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <julian.reschke@gmx.de>) id 1VK2Of-0005NJ-F8 for ietf-http-wg@listhub.w3.org; Thu, 12 Sep 2013 08:37:05 +0000
Received: from mout.gmx.net ([212.227.15.15]) by lisa.w3.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from <julian.reschke@gmx.de>) id 1VK2Oa-0005Rh-NB for ietf-http-wg@w3.org; Thu, 12 Sep 2013 08:37:05 +0000
Received: from [192.168.2.117] ([93.217.96.211]) by mail.gmx.com (mrgmx103) with ESMTPSA (Nemesis) id 0MfmZs-1VYFLp3eBY-00N7cS for <ietf-http-wg@w3.org>; Thu, 12 Sep 2013 10:36:34 +0200
Message-ID: <52317D0F.2010207@gmx.de>
Date: Thu, 12 Sep 2013 10:36:31 +0200
From: Julian Reschke <julian.reschke@gmx.de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: Mark Nottingham <mnot@mnot.net>
CC: "Roy T. Fielding" <fielding@gbiv.com>, IETF HTTP WG <ietf-http-wg@w3.org>
References: <20113DD2-A73E-456A-8F0E-0C0EEE082B06@nordsc.com> <4E67CCEC.2040804@gmx.de> <1758DCA6-3CB3-401E-90FC-9CD1156046F4@nordsc.com> <4E67CF5C.1080604@gmx.de> <DA83652A-1D4A-4167-B757-69E539BB390C@nordsc.com> <4E67D2F5.9060504@gmx.de> <2F07AB15-3046-40F1-B535-496945B056C7@gbiv.com> <4E68AA79.6060604@treenet.co.nz> <AE62F82D-ECF3-459B-9F8F-D4BC4DE8D15C@gbiv.com> <D0C5E9DA-2332-4505-9395-2D9988B3FF48@gbiv.com> <DBCAD0FB-046B-40AC-95B4-0E302E37C770@mnot.net> <5231716A.4000104@gmx.de>
In-Reply-To: <5231716A.4000104@gmx.de>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:HxIpIpA459PW3Fxhiz94YYg72CaxWPqbYWt/6rRpjO9PpRtsrmm o5wNVLzlOGR0oHcoTCPDlmr2LwpSvOaklkTMxViPTe+2Cist6Nrq8IZlEH2EMSa8etaRUjn 84tAruRwi0DpHr3MpbzpNXzlSqjVdQ0YoRwig9Fmc3JFhdNhBrQoKY1nrfrJ3exk6ZJnQm0 Vl6QtN/kHjkqNU4FHkAqQ==
Received-SPF: pass client-ip=212.227.15.15; envelope-from=julian.reschke@gmx.de; helo=mout.gmx.net
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-3.410, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1VK2Oa-0005Rh-NB 2eccba4a334a58b36b525ef041ab17d4
X-Original-To: ietf-http-wg@w3.org
Subject: Re: #468 p2: Expectation extensions
Archived-At: <http://www.w3.org/mid/52317D0F.2010207@gmx.de>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/19602
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 2013-09-12 09:46, Julian Reschke wrote:
> On 2013-09-12 04:17, Mark Nottingham wrote:
>>
>> On 10/08/2013, at 6:40 PM, Roy T. Fielding <fielding@gbiv.com> wrote:
>>
>>> I spent a few days trying to wrangle the issues around the
>>> Expect header field in p2 (#466, #467, #458, #468) and have
>>> run into a brick wall.  I think we should reopen #468,
>>> remove everything except 100-continue, and then specify the
>>> 100-continue mechanism as it is implemented in practice.
>>>
>>> I tried to rewrite the section so that the existing text
>>> would make sense as a must-understand-or-fail feature for
>>> HTTP/1.1.  I was able to do that, based on the fantasy that
>>> HTTP/1.1 servers had at least deployed that much.  Apparently,
>>> I had already forgotten the testing I did two years ago, and
>>> nothing has changed since then.
>>>
>>> In short, Apache httpd is the only server that I could find
>>> which sent 417 Expectation Failed in response to an expectation
>>> extension.  Apache does not actually parse the syntax -- it
>>> simply rejects anything that isn't 100-continue.  There exists
>>> a patched version of nginx that does the same, but only for
>>> file upload requests that are about to succeed.  IIS does not
>>> appear to support Expect at all, though it may for some resources
>>> that I could not find.
>>>
>>> Then, I stopped writing, since there is no point in
>>> specifying a must-understand feature that still hasn't been
>>> implemented consistently 16 years after it was originally defined.
>>>
>>> What we can do is define how "Expect: 100-continue" is implemented
>>> in practice as an indication that the client will wait some
>>> implementation-dependent amount of time to see if it gets an
>>> error before continuing to send the request body.  We can specify
>>> that sensibly, including its shortcomings, if we discard the
>>> must-understand semantics and the protocol versioning bit
>>> about responding with 417 if the next hop is HTTP/1.0.
>>>
>>> I know that #468 was closed due to lack of interest, but the
>>> alternative is to specify something that hasn't been implemented
>>> and will never be interoperable outside a closed environment
>>> (where both client and server are controlled by the same org),
>>> and we don't need Expect extensions in a closed environment.
>>
>> Based on discussion so far, that seems like a reasonable path forward.
>> Personally, I'm +1 on this (as should have been clear by all of the
>> Expect-related issues I raised).
>> ...
>
> I remain unconvinced.
>
> I just tried "expect: foobar" with a set of sites I use, and many of
> them (facebook.com, twitter.com, google.com, spiegel.de...) indeed
> return 417 although they do not appear to run apache (it's not always
> easy to tell).

(google.com does not, sorry for the inaccuracy).

> ...

Best regards, Julian