Re: [hybi] Resolutions for the issues of the compression spec reported during WGLC

Julian Reschke <julian.reschke@gmx.de> Fri, 04 January 2013 13:26 UTC

Return-Path: <julian.reschke@gmx.de>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8F8AC21F8550 for <hybi@ietfa.amsl.com>; Fri, 4 Jan 2013 05:26:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.299
X-Spam-Level:
X-Spam-Status: No, score=-106.299 tagged_above=-999 required=5 tests=[AWL=-4.300, BAYES_00=-2.599, J_CHICKENPOX_52=0.6, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O6NuzrZrrzLb for <hybi@ietfa.amsl.com>; Fri, 4 Jan 2013 05:26:44 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by ietfa.amsl.com (Postfix) with ESMTP id C627321F854C for <hybi@ietf.org>; Fri, 4 Jan 2013 05:26:43 -0800 (PST)
Received: from mailout-de.gmx.net ([10.1.76.33]) by mrigmx.server.lan (mrigmx001) with ESMTP (Nemesis) id 0MWMYG-1TWi6N34EU-00XYjD for <hybi@ietf.org>; Fri, 04 Jan 2013 14:26:41 +0100
Received: (qmail invoked by alias); 04 Jan 2013 13:26:41 -0000
Received: from mail.greenbytes.de (EHLO [192.168.1.104]) [217.91.35.233] by mail.gmx.net (mp033) with SMTP; 04 Jan 2013 14:26:41 +0100
X-Authenticated: #1915285
X-Provags-ID: V01U2FsdGVkX18SUMoWZMISoJkTtURcs1tjOqvzFcbmPx95u6e9/T kAyHj3Smgq2m8U
Message-ID: <50E6D88E.7030100@gmx.de>
Date: Fri, 04 Jan 2013 14:26:38 +0100
From: Julian Reschke <julian.reschke@gmx.de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Thunderbird/17.0
MIME-Version: 1.0
To: Takeshi Yoshino <tyoshino@google.com>
References: <CAH9hSJYwuBuben2vRrG3Xb_aSpZjJhC9WynOeopfChpjqBh_7Q@mail.gmail.com>
In-Reply-To: <CAH9hSJYwuBuben2vRrG3Xb_aSpZjJhC9WynOeopfChpjqBh_7Q@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Y-GMX-Trusted: 0
Cc: hybi@ietf.org
Subject: Re: [hybi] Resolutions for the issues of the compression spec reported during WGLC
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
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: Fri, 04 Jan 2013 13:26:44 -0000

On 2012-12-17 05:28, Takeshi Yoshino wrote:
> ...
> ==== Open issue ====
>
> - Conflict between "method" extension parameter spec and RFC 6455
> -- http://www.ietf.org/mail-archive/web/hybi/current/msg09904.html
>
> Possible solutions are:
>
> a) revise RFC 6455 by replacing constraint on quoted-string from "token"
> to CHAR - CTL
> pros:
> - human readable
> cons:
> - needs very strong justification to change 6455
> -- existing implementations strictly conform to 6455 will "Fail" when
> method parameter including space, semicolon, etc. instead of just
> rejecting the extension
> -- there might be any private-use extension that manipulates extensions
> header assuming extension parameters conform to token after unquote
>
> b) move the method parameter into a new separate handshake header entry
> pros:
> - human readable
> cons:
> - introduces a new header not defined in 6455
>
> c) use hex-encoding to token-ize the method parameter string (for
> compatibility, use method_hex as the extension parameter name)
> pros:
> - just addition of well-known simple encoding. no change outside of
> Sec-WebSocket-Extensions header
> cons:
> - not human readable
>
> My thought:
>
> I think it can be considered to be a bug that the token constraint is
> making extension header hard to carry structured data. But as listed
> above, there're difficulties to adopt (a).
>
> (c) sounds like the most feasible interim solution.
> ...

I haven't followed the discussions that led to the current design, but 
this smells a bit like a case of an over-engineered extension point. Do 
you *really* expect that negotiation will have to happen on 
*paramaters*? If this is not the case, it would be *much* simpler to 
simply define different tokens for the different schemes and be done. 
So, for instance:

   Sec-WebSocket-Extensions: permessage-compress-deflate

instead of

   Sec-WebSocket-Extensions: permessage-compress; method=deflate

Keep in mind that if you extend quoted-string to essentially wrap other 
name/parameter pairs, you may end up with having to escape double 
quotes; and this is asking for trouble for something that really should 
be easy.

Best regards, Julian