Re: [hybi] #1: HTTP Compliance

Greg Wilkins <gregw@webtide.com> Mon, 17 May 2010 10:28 UTC

Return-Path: <gregw@webtide.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7E24C3A6C54 for <hybi@core3.amsl.com>; Mon, 17 May 2010 03:28:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.262
X-Spam-Level:
X-Spam-Status: No, score=-0.262 tagged_above=-999 required=5 tests=[AWL=-0.263, BAYES_50=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XzAQUTpz5m4t for <hybi@core3.amsl.com>; Mon, 17 May 2010 03:28:35 -0700 (PDT)
Received: from mail-ww0-f44.google.com (mail-ww0-f44.google.com [74.125.82.44]) by core3.amsl.com (Postfix) with ESMTP id 94DBC3A6B83 for <hybi@ietf.org>; Mon, 17 May 2010 03:23:44 -0700 (PDT)
Received: by wwb28 with SMTP id 28so2281046wwb.31 for <hybi@ietf.org>; Mon, 17 May 2010 03:23:32 -0700 (PDT)
Received: by 10.227.135.133 with SMTP id n5mr2961316wbt.45.1274091812559; Mon, 17 May 2010 03:23:32 -0700 (PDT)
Received: from [192.168.0.100] (host116-234-static.43-88-b.business.telecomitalia.it [88.43.234.116]) by mx.google.com with ESMTPS id u36sm39791628wbv.0.2010.05.17.03.23.30 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 17 May 2010 03:23:31 -0700 (PDT)
Message-ID: <4BF11920.2080307@webtide.com>
Date: Mon, 17 May 2010 12:23:28 +0200
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100423 Thunderbird/3.0.4
MIME-Version: 1.0
To: "hybi@ietf.org" <hybi@ietf.org>
References: <068.d07026741c6694cd80652d2a7d34f236@tools.ietf.org> <4BF106AD.6020506@webtide.com> <Pine.LNX.4.64.1005170918310.25609@ps20323.dreamhostps.com>
In-Reply-To: <Pine.LNX.4.64.1005170918310.25609@ps20323.dreamhostps.com>
X-Enigmail-Version: 1.0.1
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Subject: Re: [hybi] #1: HTTP Compliance
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 17 May 2010 10:28:36 -0000

On 17/05/10 11:35, Ian Hickson wrote:
> On Mon, 17 May 2010, Greg Wilkins wrote:
>>
>> Also, in an attempt to move the conversation on, I'd like flip the 
>> question around and ask if somebody can clearly state what is the down 
>> side of adopting HTTP compliance other than it might force a breaking 
>> change in the -76 draft.
> 
> There is an assumption in this question that I feel would lead us to make 
> suboptimal design decisions: it assumes that the bytes being sent from one 
> peer to another peer are intrinsically meaningful, as opposed to the 
> reality, which is that it's the software that imbues them with meaning 
> when interpreting them.

What software is required to imbue meaning to these words?

> What matters is that we get interoperable behaviour. Everything else is 
> secondary, IMHO. We should look at things from the point of view of the 
> client and the point of view of the server, not from the point of view of 
> the bytes on the wire. This has some implications for our requirements -- 
> for example, it means that the server and client don't have to agree about 
> what's going on, so long as the result is reliably interoperable. A client 
> might think it's talking one protocol, while a server might think it's 
> talking another protocol -- so long as the rules for generation on the 
> client result in the right result when the server applies the rules for 
> consumption, we've achieved the goal of interoperability.

The arguments I have made have been entirely from the point of view
of the server and the client.

The server is going to have to send responses and is currently faced
with a difficult (or impossible) choice between sending a HTTP compliant
or a websocket compliant response.

A client is going to see non 101 HTTP responses - no matter if we rule
that is non websocket compliant.

In reality, clients and servers are going to have to talk compliant
HTTP to each other to deal with these cases - regardless of whatever
the protocol spec says.    Servers will send 4xx and 5xx responses
and clients will correctly interpret them.

So you can continue to pretend that these conversations will never
actually happen.... but that will not change the reality that they
will.


regards