Re: [hybi] #1: HTTP Compliance

"Shelby Moore" <shelby@coolpage.com> Sun, 15 August 2010 09:09 UTC

Return-Path: <shelby@coolpage.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 999323A685B for <hybi@core3.amsl.com>; Sun, 15 Aug 2010 02:09:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level:
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[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 vg9Z1U4behOn for <hybi@core3.amsl.com>; Sun, 15 Aug 2010 02:09:37 -0700 (PDT)
Received: from www5.webmail.pair.com (www5.webmail.pair.com [66.39.3.83]) by core3.amsl.com (Postfix) with SMTP id B609F3A681F for <hybi@ietf.org>; Sun, 15 Aug 2010 02:09:33 -0700 (PDT)
Received: (qmail 67895 invoked by uid 65534); 15 Aug 2010 09:10:09 -0000
Received: from 121.97.54.174 ([121.97.54.174]) (SquirrelMail authenticated user shelby@coolpage.com) by sm.webmail.pair.com with HTTP; Sun, 15 Aug 2010 05:10:09 -0400
Message-ID: <f7d4bb98e444b85b9bf1af6d4d9f0772.squirrel@sm.webmail.pair.com>
Date: Sun, 15 Aug 2010 05:10:09 -0400
From: Shelby Moore <shelby@coolpage.com>
To: hybi@ietf.org
User-Agent: SquirrelMail/1.4.20
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Subject: Re: [hybi] #1: HTTP Compliance
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: shelby@coolpage.com
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: Sun, 15 Aug 2010 09:11:09 -0000

An HTTP proxy that is compatible with draft/proposal #76 (the contentious
one that passes 8 extra characters after the HTTP header without a
Content-Length header), would need a specific code path for the WebSocket
upgrade request in order to pass 8, and only 8, extra characters
(concensus is that passing an arbitrary content length would be a security
hole).

Isn't it the antithesis of the 80/20 rule and interoperability to require
every HTTP proxy in the world to have specific code path for every
possible future HTTP Upgrade protocol that comes along?

Whereas, if we pass those extra data after the HTTP 101 server response,
then HTTP proxies only need to support a single code path for all future
compliant Upgrade extensions.

In the former case, proxy code has to be changed every time someone
invents a new non-compliant Upgrade extension protocol. In the latter
case, proxy code has to be changed one time to correctly support the
generic Upgrade and never again.

I assume from what I have read on this list since July, that Ian Hickson
felt the higher priority interoperability issue was to minimize false
positives and thus maximize early proxy failure detection, for proxies
that had not been specifically coded to be compatible with WebSockets
specifically. Agreed, but not at the interoperability cost of requiring
every proxy in the world to be recoded with a specific code path for every
new Upgrade extension protocol. And the incompatible 8 extra characters
doesn't gain any significant DETERMINISTIC benefit against false positive
behavior (because networks are not DETERMINISTIC but rather stochastic). 
Am I missing something? Was Ian thinking that the 8 extra characters would
become adopted by other future Upgrade extension protocols and thus
minimize proxy code path changes proliferation? I am just trying to
understand what basis in logic Ian has for saying he is for 80/20 rule and
interoperability?  I assume he geniunely believes that, so I want to know
what I a missing that is inside his head or not evident to me in what I
read so far?

I intend no animosity. I am really just trying to understand, so as to
make sure I haven't missed something.