Re: [hybi] Last Call: <draft-ietf-hybi-thewebsocketprotocol-10.txt> (The WebSocket protocol) to Proposed Standard

"Thomson, Martin" <> Tue, 12 July 2011 23:38 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 17FDF11E8085 for <>; Tue, 12 Jul 2011 16:38:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.549
X-Spam-Status: No, score=-2.549 tagged_above=-999 required=5 tests=[AWL=0.050, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id uuzqK44LVXWH for <>; Tue, 12 Jul 2011 16:38:25 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 794B211E8073 for <>; Tue, 12 Jul 2011 16:38:25 -0700 (PDT)
X-AuditID: 0a0404e9-b7b96ae0000033d5-63-4e1cdaf9fe07
Received: from ( []) by (Symantec Brightmail Gateway) with SMTP id 2E.E4.13269.9FADC1E4; Tue, 12 Jul 2011 18:38:34 -0500 (CDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id; Tue, 12 Jul 2011 18:39:30 -0500
Received: from ([fe80::9d82:a492:85e3:a293]) by ([fe80::8a9:4724:f6bb:3cdf%10]) with mapi; Wed, 13 Jul 2011 07:39:24 +0800
From: "Thomson, Martin" <>
To: Mykyta Yevstifeyev <>
Date: Wed, 13 Jul 2011 07:39:22 +0800
Thread-Topic: Last Call: <draft-ietf-hybi-thewebsocketprotocol-10.txt> (The WebSocket protocol) to Proposed Standard
Thread-Index: AcxAcizxdZoLyVXtRnmvI4sRkxLVdwAdy9Gg
Message-ID: <>
References: <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: AAAAAA==
Cc: "" <>, "" <>
Subject: Re: [hybi] Last Call: <draft-ietf-hybi-thewebsocketprotocol-10.txt> (The WebSocket protocol) to Proposed Standard
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 12 Jul 2011 23:38:26 -0000

On 2011-07-12 at 18:59:21, Mykyta Yevstifeyev wrote:
> ABNF is designed to deal with characters represented in octets.  

Not true again.  ABNF has terminal values that are both characters and numeric.  A character mapping (e.g. ASCII, Unicode) can be used to map one to the other.

   Rules resolve into a string of terminal values, sometimes called
   characters.  In ABNF, a character is merely a non-negative integer.

%xHH is a number 
"a" is a character that is mapped to a number using the selected character mapping (Unicode, ASCII)

The number or non-negative integer is the terminal value.  That number might then be encoded using the encoding (UTF-8, ASCII), but that's not interesting to ABNF.

If you want, you can define the terminal value to be a number of 1-bit size.  The string literal can either have no meaning at all, since the strings are ASCII [1].  Then you end up with a 1-bit terminal value which is trivially encoded.


[1] Alternatively, a string literal could be redefined to map "0" to 0 and "1" to 1 with all other values invalid - ABNF isn't a law or anything.