[hybi] Ticket#1 Http Compliance

Greg Wilkins <gregw@webtide.com> Wed, 12 May 2010 13:52 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 D82CC3A6CA8 for <hybi@core3.amsl.com>; Wed, 12 May 2010 06:52:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.365
X-Spam-Level:
X-Spam-Status: No, score=-0.365 tagged_above=-999 required=5 tests=[AWL=-0.366, 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 cTBBFKDMiQeV for <hybi@core3.amsl.com>; Wed, 12 May 2010 06:52:53 -0700 (PDT)
Received: from mail-wy0-f172.google.com (mail-wy0-f172.google.com [74.125.82.172]) by core3.amsl.com (Postfix) with ESMTP id CF5093A6CC4 for <hybi@ietf.org>; Wed, 12 May 2010 06:42:09 -0700 (PDT)
Received: by wyb36 with SMTP id 36so16570wyb.31 for <hybi@ietf.org>; Wed, 12 May 2010 06:41:56 -0700 (PDT)
Received: by 10.227.145.133 with SMTP id d5mr6881829wbv.43.1273671716312; Wed, 12 May 2010 06:41:56 -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 u36sm1144255wbv.12.2010.05.12.06.41.55 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 12 May 2010 06:41:55 -0700 (PDT)
Message-ID: <4BEAB021.5030600@webtide.com>
Date: Wed, 12 May 2010 15:41:53 +0200
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Thunderbird 2.0.0.24 (X11/20100411)
MIME-Version: 1.0
To: "hybi@ietf.org" <hybi@ietf.org>
X-Enigmail-Version: 0.95.7
Content-Type: multipart/mixed; boundary="------------070001040702090907070203"
Subject: [hybi] Ticket#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: Wed, 12 May 2010 13:52:54 -0000

All,

Attached is a proposed diff (from me as individual - not as requirements editor)
to the requirements document for HTTP Compliance.

Formatted as text the patch results in:


   REQ. 7:  When sharing host and "well known" port with HTTP, the
      WebSocket protocol MUST be HTTP/1.1 compliant until both ends have
      established the WebSocket protocol.  The protocol may prohibit the
      usage of specific HTTP features.

   Reason: when operating on the standard HTTP ports, existing web
   infrastructure may handle connections and requests according to
   existing standards prior to the establishment of the new protocol.
   It may also be desirable for consenting clients and servers to use
   HTTP features such as authentication and redirection, prior to
   establishing the websocket handshake.

   However, this requirement does not mean that a websocket
   implementation that is not for general-purpose HTTP, need implement
   any more of the HTTP protocol than is required to establish a
   websocket connection.  The minimal requirements of HTTP are small, as
   indicated by the following extracts of RFC-2616:

   RFC-2616 5.1.1  The methods GET and HEAD MUST be supported by all
      general-purpose servers.  All other methods are OPTIONAL
   RFC-2616 6.1.1  HTTP applications are not required to understand the
      meaning of all registered status codes, though such understanding
      is obviously desirable.  However, applications MUST understand the
      class of any status code, as indicated by the first digit, and
      treat any unrecognized response as being equivalent to the x00
      status code of that class
   RFC-2616 7.1  Unrecognized header fields SHOULD be ignored by the
      recipient and MUST be forwarded by transparent proxies.


My intent with this wording is to not require any more of HTTP
to be implemented my minimal implementations, hence the extracts
from RFC2616 showing that there are few MUSTs in HTTP.

This will allow arbitrary HTTP features to be used if
client and server desire to do so - which seams reasonable
as in many cases the client and server are going to have
full HTTP implementations available.

However, it does allow the protocol to specifically prohibit
the use of features, if for example we decided that redirect
was a undesirable for some reason.


regards