Re: [hybi] Web sockets and existing HTTP stacks

Pieter Hintjens <ph@imatix.com> Sun, 31 January 2010 20:19 UTC

Return-Path: <pieterh@gmail.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 D12EE3A685D for <hybi@core3.amsl.com>; Sun, 31 Jan 2010 12:19:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Level:
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
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 lYT5u0TQZRYK for <hybi@core3.amsl.com>; Sun, 31 Jan 2010 12:19:38 -0800 (PST)
Received: from mail-iw0-f199.google.com (mail-iw0-f199.google.com [209.85.223.199]) by core3.amsl.com (Postfix) with ESMTP id F222F3A683B for <hybi@ietf.org>; Sun, 31 Jan 2010 12:19:37 -0800 (PST)
Received: by iwn37 with SMTP id 37so3898360iwn.30 for <hybi@ietf.org>; Sun, 31 Jan 2010 12:20:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:from:date:x-google-sender-auth:message-id:subject:to:cc :content-type; bh=v1nfrl96OiP7y1gxXFpfnep8VioFt5AuYYAvl1VXuJA=; b=V5LvVyyQ6QQS/Vss9+ChLWxCoOGgTUVSUC2Eamcl8PMKS4wXxcPD69TY2eWgoXNTbo RbmKputPTFnYixX+466tuhJY9Ui2Ku2teOw7qtDV+fdJqqJ/O81zXa5RvTsx3VJjTuyH IGPWVtedIldIrKmXRgkrzz/5d7RQr/UKcpP+w=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; b=TXoQMtDiL/O+DJ48sxNgRFy740Dp7S+a1kPGung1w3a9lutWBBoqLv1kIXRP1z8S3d 5vdbOAqAHAntwQEoRPe1nRwMslcL5YhxRUGMIT9DI7CdvVSFCbMKWd3gqpyVWoda4B/7 Gh2Y4USKqnIzd1CtgZSzSFCfsnNbCm/vvoZ7Q=
MIME-Version: 1.0
Sender: pieterh@gmail.com
Received: by 10.231.169.67 with SMTP id x3mr2058071iby.76.1264969192105; Sun, 31 Jan 2010 12:19:52 -0800 (PST)
In-Reply-To: <Pine.LNX.4.64.1001310835410.3846@ps20323.dreamhostps.com>
References: <557ae280911171402v7546e5e7n93a1e57f87dc10e5@mail.gmail.com> <557ae280911200711i5493e654k67c1f5f07336bfb9@mail.gmail.com> <Pine.LNX.4.62.0912032347360.15540@hixie.dreamhostps.com> <4B2C1D52.9020505@webtide.com> <5c902b9e0912181640n497169cdrfa71f9a2908e6ef3@mail.gmail.com> <20091219005442.GA10949@shareable.org> <4B2C287E.1030006@webtide.com> <Pine.LNX.4.64.1001310835410.3846@ps20323.dreamhostps.com>
From: Pieter Hintjens <ph@imatix.com>
Date: Sun, 31 Jan 2010 21:19:32 +0100
X-Google-Sender-Auth: df273f6ed290cb15
Message-ID: <5821ea241001311219j111d25a3h27fb2d05a2ece32d@mail.gmail.com>
To: Ian Hickson <ian@hixie.ch>
Content-Type: text/plain; charset="ISO-8859-1"
Cc: hybi@ietf.org
Subject: Re: [hybi] Web sockets and existing HTTP stacks
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: Sun, 31 Jan 2010 20:19:39 -0000

On Sun, Jan 31, 2010 at 10:22 AM, Ian Hickson <ian@hixie.ch> wrote:

> Well, yeah. That's going to be the case with any protocol that shares its
> port with HTTP. Web Socket tries to make this easier by making it at least
> _possible_ to parse the header with an HTTP stack, if not necessarily
> easy.

Do you not understand the impact of breaking (cheerfully or not) a
30-year standard respected by the entire Internet?

Post 80 is not shared by protocols.  Port 80 IS HTTP by definition, by
contract.  When you send non-HTTP stuff on port 80 you are breaking
the contract.  You are in effect creating an out-law protocol, backed
by the weight of a massive company, and this breaking of an old and
very important contract, by force, is what is creating the backlash on
this (very polite IMO) group.

You have two sustainable choices: use another port, or conform to port
80's contract, i.e. use valid HTTP until you can escape into
unregulated space.

Your current choice (to use port 80 with the excuse "IANA told me to",
and then to ignore the existing contract on that port) is going to
create continued resentment, and eventually a backlash against your
spec.

There are other serious problems in the high-handed approach you are
taking but this is the most serious.  If you switch to another port OR
if you respect HTTP until you come into contractless space, you can do
whatever madness you wish.

Ignore these contracts, and the repeated advice given on this list, at
your own peril, Ian.  Even Google cannot fight that amount of history
(and I doubt it seriously wants to).

- Pieter