[hybi] BWTP Proposal - Bidirection Web Transfer Protocol
Greg Wilkins <gregw@webtide.com> Wed, 10 June 2009 09:24 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 6165B3A67DB for <hybi@core3.amsl.com>; Wed, 10 Jun 2009 02:24:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 A91TevfsOnFJ for <hybi@core3.amsl.com>; Wed, 10 Jun 2009 02:24:03 -0700 (PDT)
Received: from wa-out-1112.google.com (wa-out-1112.google.com [209.85.146.182]) by core3.amsl.com (Postfix) with ESMTP id F38773A67A4 for <hybi@ietf.org>; Wed, 10 Jun 2009 02:24:02 -0700 (PDT)
Received: by wa-out-1112.google.com with SMTP id l35so199106waf.5 for <hybi@ietf.org>; Wed, 10 Jun 2009 02:24:07 -0700 (PDT)
Received: by 10.114.159.5 with SMTP id h5mr1786375wae.201.1244625847785; Wed, 10 Jun 2009 02:24:07 -0700 (PDT)
Received: from ?10.10.1.16? (60-242-119-126.tpgi.com.au [60.242.119.126]) by mx.google.com with ESMTPS id 17sm7068973pxi.162.2009.06.10.02.24.05 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 10 Jun 2009 02:24:06 -0700 (PDT)
Message-ID: <4A2F7BB2.5000105@webtide.com>
Date: Wed, 10 Jun 2009 19:24:02 +1000
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Thunderbird 2.0.0.21 (X11/20090409)
MIME-Version: 1.0
To: hybi@ietf.org
Content-Type: multipart/mixed; boundary="------------000809000107080105040200"
Subject: [hybi] BWTP Proposal - Bidirection Web Transfer Protocol
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, 10 Jun 2009 09:24:06 -0000
All, Attached in a very very early draft of an alternative proposal for a transfer protocol for HTML5 WebSockets. For lack of a better name (and not wanting to coopt the hybi name), I've called it BWTP - Bidirection Web Transfer Protocol I wont explain the protocol here, as hopefully the proposal document does that sufficiently well. But I will explain why I think this proposal (or something approximately similar) is superior to the current Websocket protocol proposal: + The protocol is very much an IETF style application protocol. In fact it is just RFC2616 with anything non bidirectional ripped out. It is not trying to be a revolution in web protocols, but simply to solve the problems at hand. + The protocol document is written very much in IETF style. In fact it is just RFC2616 with anything non bidirectional ripped out. BNF is used to specify the protocol and the principal of "be strict in what you generate and forgiving in what your parse" is adhered to. + Because of it's similarity to HTTP, it is intended that existing HTTP clients, servers and intermediaries will be able to be minimally updated to support this protocol. This will not require entirely new protocol libraries to be developed. Existing development and analysis tools will also be able to be easily updated, plus the protocol is mostly human readable. + It supports full mime encapsulated payloads, but has a default mechanism so that most values only need to be specified once per connection if they do not change. The minimal overhead per message is 11 bytes, which is a little more than the websocket proposal, but is hardly significant. + There is no formal channel mechanism like BEEP has, but each message may be to/from a different URI if need be. This makes multiplexing easy to support. + There is no formal segmentation mechanism, but Content-Ranges are supported so that large content cna be sent in smaller bits if desired. + The protocol recognizes that intermediaries (proxies) may wish to be an active party on a bi direction connection. For example, this proposal allows an intermediary to initiate and orderly lossless close of the connection. I'm sure innovative proxy applications will be developed over time, just as they have been for HTTP. + it well supports the current HTML WebSocket API but is also flexible and extensible so that non browser clients may use it and future APIs will not need protocol changes. I'd really appreciate any feedback, co-authors, review, editing etc. I don't consider anything in this proposal to be fixed and all is open to change. I have the draft in Google Docs and am happy to add collaborators (there are a few already (who should add themselves to the authors/acknowlegements)). cheers
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Pieter Hintjens
- [hybi] BWTP Proposal - Bidirection Web Transfer P… Greg Wilkins
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Pieter Hintjens
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Pieter Hintjens
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Kris Zyp
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Martin Tyler
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Paul Prescod
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Salvatore Loreto
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- [hybi] WebSocket and metadata (Was: BWTP Proposal… Ian Hickson
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Ian Hickson
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Ian Hickson
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Jamie Lokier
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Jamie Lokier
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Jamie Lokier
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Salvatore Loreto
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Salvatore Loreto
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Anne van Kesteren
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Jonas Sicking
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Salvatore Loreto
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Pieter Hintjens
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Pieter Hintjens
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Jamie Lokier
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Pieter Hintjens
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Ian Hickson
- Re: [hybi] BWTP Proposal - Bidirection Web Transf… Greg Wilkins
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Greg Wilkins
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Jamie Lokier
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Greg Wilkins
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Ian Hickson
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Ian Hickson
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Jamie Lokier
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Ian Hickson
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Greg Wilkins
- Re: [hybi] WebSocket and metadata (Was: BWTP Prop… Ian Hickson