Re: [hybi] Discontinuation of mux standardizaton in favor of WS/HTTP/2.0

Tobias Oberstein <tobias.oberstein@tavendo.de> Mon, 20 January 2014 17:36 UTC

Return-Path: <tobias.oberstein@tavendo.de>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 666401A0214 for <hybi@ietfa.amsl.com>; Mon, 20 Jan 2014 09:36:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wM2gQZ0e79n7 for <hybi@ietfa.amsl.com>; Mon, 20 Jan 2014 09:36:01 -0800 (PST)
Received: from EXHUB020-2.exch020.serverdata.net (exhub020-2.exch020.serverdata.net [206.225.164.29]) by ietfa.amsl.com (Postfix) with ESMTP id AE05D1A0213 for <hybi@ietf.org>; Mon, 20 Jan 2014 09:36:01 -0800 (PST)
Received: from EXVMBX020-12.exch020.serverdata.net ([169.254.3.11]) by EXHUB020-2.exch020.serverdata.net ([206.225.164.29]) with mapi; Mon, 20 Jan 2014 09:36:01 -0800
From: Tobias Oberstein <tobias.oberstein@tavendo.de>
To: Peter Thorson <webmaster@zaphoyd.com>
Date: Mon, 20 Jan 2014 09:35:58 -0800
Thread-Topic: [hybi] Discontinuation of mux standardizaton in favor of WS/HTTP/2.0
Thread-Index: Ac8V+oM863LiA9S3R22ycqnjSI6MXAACo4Ww
Message-ID: <634914A010D0B943A035D226786325D4446C0826EC@EXVMBX020-12.exch020.serverdata.net>
References: <CAH9hSJah=4Z4-NufVrUrP965epc9eMdEbC+3LmucN4DhR=bWiQ@mail.gmail.com> <634914A010D0B943A035D226786325D4446BE403DF@EXVMBX020-12.exch020.serverdata.net> <CABihn6H5EtDwhXMYhh-BMb5m6yxL9nYv6=Ud4fN5DeQkjDGyPQ@mail.gmail.com> <634914A010D0B943A035D226786325D4446BE403E1@EXVMBX020-12.exch020.serverdata.net> <CABihn6EaE+69q3AJqxEj6vGztBHu4FdOcLCvZ_9Jg-e2cFLwEg@mail.gmail.com> <CAGzyod7ymnpOTiiH7xN3W-aBxD2NNPc=S_Oawdihfhuu84unLw@mail.gmail.com> <634914A010D0B943A035D226786325D4446BED9CDE@EXVMBX020-12.exch020.serverdata.net> <CABihn6EGA3znv_WsJ1gELXyNXgY2fy8weBJ62yD+M2iP7xEnCA@mail.gmail.com> <634914A010D0B943A035D226786325D4446BF99976@EXVMBX020-12.exch020.serverdata.net> <CABihn6GFnGTB9sOZ1=2UnOv-pHPRnRY96DnOb_Q24bNUaxgR=w@mail.gmail.com> <9230B7A2-56AD-4807-A53A-928253364B52@zaphoyd.com> <634914A010D0B943A035D226786325D4446BF99A9B@EXVMBX020-12.exch020.serverdata.net> <F088AE82-E1AF-489B-B220-6E911078C1F3@zaphoyd.com>
In-Reply-To: <F088AE82-E1AF-489B-B220-6E911078C1F3@zaphoyd.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: de-DE, en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] Discontinuation of mux standardizaton in favor of WS/HTTP/2.0
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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, 20 Jan 2014 17:36:03 -0000

> Using straight up DATA frames would certainly be an option. I suggest a
> separate frame type because I think the types of flags you would set for
> generic requests (like the HTTP 1.1 requests over HTTP 2.0 transport) would
> be different than the types you would set for the short websocket like
> messages. Take the UTF8/binary flag (or the RFC6455 opcode in the more
> general case) for example, does that make sense for a request for an image?

I agree, MSG_TYPE bit would probably not be useful in general.

> 
> You could argue that you could reinterpret the flags in the DATA frame based
> on whether or not you have negotiated websocket mode but this seems ripe
> for confusion and exactly the point of having a frame type. A frame type lets
> you define what flags mean for that frame type and what the rules for the
> processing of that frame type would be. It also simplifies implementation
> logic that might want to logically switch processing branches on frame type.

However, an implementation would probably want to remember if a SPDY stream ID 
is SPDY/Messaging or not, if just to check that all frames on that stream conform to
SPDY/Messaging requirements: either frame opcode or MSG_TYPE flag, and payload
conformance.

Another consideration are intermediaries: do they want simplified handling (all SPDY/DATA
frames handled alike) or specific handling: SPDY/MESSAGE frame differently.

> 
> ------
> Re: minimum bits
> 
> I definitely agree that as written today only message done, stream done, and
> utf8/binary are necessary. Stream done is present already in the DATA frame
> type. This does seem to ignore the fact that RFC6455 defines 8 data message
> types though and might limit compatibility between the two in the future.

Yep, that's the idea. Ignore other WS opcodes, since those are not exposed in the W3C API
anyway, and compatibility with the latter only was the supposed goal.

There is 1 more API thing: W3C API lets me close a WS with "code" and "reason".

How do would this be mapped?

> That said, I am not really sure yet whether that matters. On one hand, text
> and binary covers quite a few cases and I can't really think of a good use for
> more data types visible at the application/WS API level since applications are
> free via subprotocols/convention to define whatever message types they
> want. On the other hand, "because I can't think of a good use case" doesn't
> seem like a strong argument.

Why not? I think thats a good argument in fact;) If we can't come up with a use case (and
I cannot imagine one also), then why pre-plan for a yet-to-be-imagined chimera?

/Tobias