Common structure | Re: I-D Action: draft-ietf-httpbis-encryption-encoding-03.txt

In message <CABkgnnU3vOBBGm=+TT6M++f5pCw9NqHe_UH3OMCDswAWzpHYAg@mail.gmail.com>
, Martin Thomson writes:
>On 11 October 2016 at 04:03, Poul-Henning Kamp <phk@phk.freebsd.dk> wrote:
>> As far as I can see, you are now introducing a new HTTP header syntax,
>
>Not as far as I can see.  If we accept the premise that the common
>structure is "list of (thing plus parameters)" 

In message <92926.1476171047@critter.freebsd.dk>, Poul-Henning Kamp write:
> It isn't, its "list of named dictionaries" and your format lacks the name.

Name can invented, I think. ☺


There is

2.  Definition of HTTP header Common Structure
https://tools.ietf.org/html/draft-kamp-httpbis-structure-00#section-2

|       common-structure = 1* ( identifier dictionary )
|
|       dictionary = * ( identifier value )
|
|       value = identifier /
|               number /
|               ascii_string /
|               unicode_string /
|               blob /
|               timestamp /
|               common-structure
|
|       identifier = (token / "*") [ token / "*" ]

3.  HTTP/1 serialization of HTTP header Common Structure
https://tools.ietf.org/html/draft-kamp-httpbis-structure-00#section-3

|       h1_common_structure = h1_element  * ("," h1_element)
|
|       h1_element = identifier * (";" identifier ["=" h1_value])
|
|       h1_value = identifier /
|               number /
|               h1_ascii_string /
|               h1_unicode_string /
|               h1_blob /
|               h1_timestamp /
|               h1_common-structure

If I guess correctly Martin Thomson's format gives

|       common-structure = 1* ( (identifier dictionary) / anonymous-dictionary )
|
|       dictionary = * ( identifier value )
|
|       anonymous-dictionary = 1* ( identifier non-empty-value )
|
|       non-empty-value = <value; empty value not allowed>


and

|       h1_common_structure = h1_element  * ("," h1_element)
|
|       h1_element = ( identifier * (";" identifier ["=" h1_value]) ) /
|                    ( 1* ( identifier "=" h1_value) )


This looks serializable, but is it parsable?

/ Kari Hurtta

Received on Saturday, 15 October 2016 05:44:12 UTC