W3C home > Mailing lists > Public > ietf-http-wg@w3.org > April to June 2008

Re: Deploying new expectation-extensions

From: Adrien de Croy <adrien@qbik.com>
Date: Fri, 04 Apr 2008 18:54:19 +1300
Message-ID: <47F5C28B.9070105@qbik.com>
To: "Roy T. Fielding" <fielding@gbiv.com>
CC: Mark Baker <distobj@acm.org>, HTTP Working Group <ietf-http-wg@w3.org>, google-gears-eng@googlegroups.com

Actually the concept goes back to Thomas Moore :)

The Expects header breaks the universal law that silence does not mean 
assent.  Instead it requires recipients to know that they need to 
actively deny a capability (else the sender will assume the capability 
is there).  Any recipient unaware of the Expects header requirements 
will ignore it, which is a failure condition.  So this creates all sorts 
of issues around sending Expects headers to HTTP/1.0 servers or 
intermediaries, or non-compliant (in terms of requirements to bounce) 

The goal of the Expects header I believe has been captured in the spec, 
whether that goal was worthy or not is another matter.  I think mostly 
confusion arises because it's not clear in the spec that the Expects 
header is intended to be used where a required extension capability 
would NOT normally work (or degrade gracefully) through any agent that 
was not explicitly aware of it. 

This covers 2 cases that I can see:

1: where the extension was semantically incompatible with the current 
version of HTTP. 
2: where the extension was optional in the current version but for some 
reason indispensable to the client.

AFAIK the only instance referred to in the spec (100-Continue) is an 
instance of 2, but not particularly useful since it's easier for an 
agent to cope with lack of 100-continue than it is to cope with being 
disconnected with a 417.  There aren't really that many optional bits of 
HTTP/1.1 that a client could reasonably decide were indispensible, 
especially considering the prospects of daring to use an Expects header.

Version changes I think is a better way to cope with the first class of 
use-cases.  There's no difference between a chain of 
agent->intermediary->server supporting a newer version number than 
supporting an extension.  It's just a matter of labelling.


Roy T. Fielding wrote:
> On Apr 3, 2008, at 8:08 PM, Mark Baker wrote:
>> On Thu, Apr 3, 2008 at 10:56 PM, Adrien de Croy <adrien@qbik.com> wrote:
>>>  However relying on non-compliance of proxies in this case would be
>>> foolhardy.  Changing the semantics of Expects I don't think is that 
>>> great an
>>> option either (actually I'd vote to deprecate it along with 305 Use 
>>> Proxy)
>> +1
> That train has long since left the station.
>  http://lists.w3.org/Archives/Public/ietf-http-wg-old/1998MayAug/0165.html 
>  http://lists.w3.org/Archives/Public/ietf-http-wg-old/1998MayAug/0192.html 
> Version numbers in protocols are a good thing.  Stupid IETF politics
> and FUD regarding the so called "risk" of changing the version number
> (when an incompatible change is made to the protocol) are the only
> reasons they don't work, and every time they end up biting us.
> ....Roy

Adrien de Croy - WinGate Proxy Server - http://www.wingate.com
Received on Friday, 4 April 2008 05:53:35 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 11:10:45 UTC