Re: Pipeline hinting revisited

"Yngve N. Pettersen" <yngve@opera.com> Fri, 12 August 2011 07:10 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 1B98421F8686 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 12 Aug 2011 00:10:49 -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 F1oIEUIjWl3S for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 12 Aug 2011 00:10:46 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id BD8E221F8665 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 12 Aug 2011 00:10:45 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.69) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1QrlsZ-0003sU-Uo for ietf-http-wg-dist@listhub.w3.org; Fri, 12 Aug 2011 07:10:04 +0000
Received: from aji.keio.w3.org ([133.27.228.206]) by frink.w3.org with esmtp (Exim 4.69) (envelope-from <yngve@opera.com>) id 1QrlsQ-00030Q-69 for ietf-http-wg@listhub.w3.org; Fri, 12 Aug 2011 07:09:54 +0000
Received: from smtp.opera.com ([213.236.208.81]) by aji.keio.w3.org with esmtp (Exim 4.72) (envelope-from <yngve@opera.com>) id 1QrlsK-000539-Tu for ietf-http-wg@w3.org; Fri, 12 Aug 2011 07:09:53 +0000
Received: from lessa-ii (2-241-76-76.cust.rcwmoab.com [76.76.241.2]) (authenticated bits=0) by smtp.opera.com (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id p7C74k99016663 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 12 Aug 2011 07:04:50 GMT
Content-Type: text/plain; charset="iso-8859-15"; format="flowed"; delsp="yes"
To: ietf-http-wg@w3.org, Amos Jeffries <squid3@treenet.co.nz>
References: <CAAbTgTu2px+o=mFyEOuSW8KzHR-o5GeN9b6X-Q+VuRtQP=A0Qw@mail.gmail.com> <20110812053137.GC9902@1wt.eu> <CAP0-QpukAzexjJaMOHoTaAGRPYV_7-91Fr9P_ukkqNQ1gsDC_A@mail.gmail.com> <20110812055327.GE9902@1wt.eu> <4E44C61D.9030704@treenet.co.nz>
Date: Fri, 12 Aug 2011 09:05:10 +0200
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: "Yngve N. Pettersen" <yngve@opera.com>
Organization: Opera Software ASA
Message-ID: <op.vz29ysx7kvaitl@lessa-ii>
In-Reply-To: <4E44C61D.9030704@treenet.co.nz>
User-Agent: Opera Mail/10.62 (Win32)
Received-SPF: pass client-ip=213.236.208.81; envelope-from=yngve@opera.com; helo=smtp.opera.com
X-W3C-Hub-Spam-Status: No, score=-5.0
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.812, SPF_PASS=-0.001
X-W3C-Scan-Sig: aji.keio.w3.org 1QrlsK-000539-Tu 65e22809fd76e116a1df21d5c5b3d918
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Pipeline hinting revisited
Archived-At: <http://www.w3.org/mid/op.vz29ysx7kvaitl@lessa-ii>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/11194
X-Loop: ietf-http-wg@w3.org
Sender: ietf-http-wg-request@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>
Resent-Message-Id: <E1QrlsZ-0003sU-Uo@frink.w3.org>
Resent-Date: Fri, 12 Aug 2011 07:10:03 +0000

On Fri, 12 Aug 2011 08:20:13 +0200, Amos Jeffries <squid3@treenet.co.nz>  
wrote:
> I was just thinking the 100-continue infrastructure built up over the  
> last few years with some success could be leveraged here. "Expect:  
> pipeline" and a 1xx status to indicate explicit support.

It sounds to me like you are assuming that a server that understand the  
Expect header, but does not understand the "pipeline" expectation, will  
just return a normal 200 OK response. Unfortunately, that is incorrect:  
Such servers will return a 417 "Expectation failed" error code.

I have seen servers send that code for the 100-continue expectation.

RFC 2616, sec 14.20:

    A server that does not understand or is unable to comply with any of
    the expectation values in the Expect field of a request MUST respond
    with appropriate error status. The server MUST respond with a 417
    (Expectation Failed) status if any of the expectations cannot be met
    or, if there are other problems with the request, some other 4xx
    status.


> That appears to nicely solve the case where pipelining is default-off  
> and enabled whenever possible.
>
>   It will not solve the problem of agents being aggressive in the  
> pipeline before seeing such a 1XX status. The 430 status proposed by  
> Mark resolves that case and can be emitted under the same requirements  
> as 417.
>
> IMO we should add "Expect: pipeline", 1XX and 430.  
> http://tools.ietf.org/html/draft-nottingham-http-pipeline-01 looks like  
> the right vehicle to extend and see that implemented.

IMO, if the problem with bad server and intermediate handling of  
pipelining cannot be solved within the current framework, then a new  
infrastructure, either for signaling support for optional protocol  
features or upgrading the protocol, e.g. what Mark is working on, with  
proper thoughts about what an intermediate can do wrong, need to be  
considered.

-- 
Sincerely,
Yngve N. Pettersen

********************************************************************
Senior Developer                     Email: yngve@opera.com
Opera Software ASA                   http://www.opera.com/
Phone:  +47 24 16 42 60              Fax:    +47 24 16 40 01
********************************************************************