Re: [hybi] Sec-WebSocket-Extensions field spec. contradiction

Alexey Melnikov <alexey.melnikov@isode.com> Tue, 06 September 2011 21:54 UTC

Return-Path: <alexey.melnikov@isode.com>
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 C676821F8F40 for <hybi@ietfa.amsl.com>; Tue, 6 Sep 2011 14:54:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.903
X-Spam-Level:
X-Spam-Status: No, score=-101.903 tagged_above=-999 required=5 tests=[AWL=-0.700, BAYES_00=-2.599, MIME_QP_LONG_LINE=1.396, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JJbgevygdvsy for <hybi@ietfa.amsl.com>; Tue, 6 Sep 2011 14:54:59 -0700 (PDT)
Received: from rufus.isode.com (rufus.isode.com [62.3.217.251]) by ietfa.amsl.com (Postfix) with ESMTP id 4878921F8EFC for <hybi@ietf.org>; Tue, 6 Sep 2011 14:54:59 -0700 (PDT)
Received: from [188.29.155.46] (188.29.155.46.threembb.co.uk [188.29.155.46]) by rufus.isode.com (submission channel) via TCP with ESMTPA id <TmaXGgBpJpi8@rufus.isode.com>; Tue, 6 Sep 2011 22:56:45 +0100
Message-ID: <4E669719.2020707@isode.com>
Date: Tue, 06 Sep 2011 22:56:41 +0100
From: Alexey Melnikov <alexey.melnikov@isode.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915
X-Accept-Language: en-us, en
To: Server-Initiated HTTP <hybi@ietf.org>
References: <CALkdAkg79HMuP3Sbp=H25fFxu1f587kNO=QT4-R6eT2rJEsEJg@mail.gmail.com> <CALiegf=UnDRccUSk9ifPZC32LQx=VMJGN0Hu7MJ=yTgmfiqVGw@mail.gmail.com>
In-Reply-To: <CALiegf=UnDRccUSk9ifPZC32LQx=VMJGN0Hu7MJ=yTgmfiqVGw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-transfer-encoding: quoted-printable
Subject: Re: [hybi] Sec-WebSocket-Extensions field spec. contradiction
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: Tue, 06 Sep 2011 21:54:59 -0000

Iñaki Baz Castillo wrote:

>2011/9/3 Sylvain Hellegouarch <sh@defuze.org>:
>  
>
>>Section 4.2.2 says:
>>    
>>
>>>If multiple extensions are to be used, they must all be listed in a single
>>>Sec-WebSocket-Extensions header field.  This header field MUST NOT be
>>>repeated.
>>>      
>>>
>>But section 9.1 says:
>>
>>    
>>
>>>Note that like other HTTP header fields, this header field MAY be split or
>>>combined across multiple lines.  Ergo, the following are equivalent:
>>>        Sec-WebSocket-Extensions: foo
>>>        Sec-WebSocket-Extensions: bar; baz=2
>>>is exactly equivalent to
>>>        Sec-WebSocket-Extensions: foo, bar; baz=2
>>>      
>>>
>>Aren't those two statements contradicting themselves?
>>    
>>
Yes, this is a bug.

>Good point. Also, why couldn't such a header occur multiple times in a
>HTTP request/response? Usually, any HTTP header allowing multivalue
>(separated by comma) also allows different values across multiple
>headers, so:
>
>  Foo: qwe, asd
>  Foo:  zxc
>
>is the same as:
>
>  Foo: qwe, asd, zxc
>
>
>This is true for most of the HTTP headers and parsers MUST be ready
>for that. Please, don't add artificial constraints.
>  
>
Any other comments on this? I will implement this change unless there 
are some objections.