Re: UTF-8 or ASCII Header Names?

Thanks for catching the missing ":" ... and yes, [":"] 1*header-char
is a much better choice.

-1 to adding any "nuance" or transformations, however. Let's be clear
and strict about this: an HTTP/2 header field name ought to always
match... period.

    LOWERALPHA = %x61-7A
    header-char = "!" / "#" / "$" / "%" / "&" / "'" /
                  "*" / "+" / "-" / "." / "^" / "_" /
                  "`" / "|" / "~" / DIGIT / LOWERALPHA
    header-name = [":"] 1*header-char

We don't need any other options or "nuance" here.

- James


On Tue, Aug 13, 2013 at 3:20 PM, Martin Thomson
<martin.thomson@gmail.com> wrote:
> On 13 August 2013 23:08, James M Snell <jasnell@gmail.com> wrote:
>> Recommend that we specify in both the HTTP/2 and Header Compression
>> spec that header names MUST conform to:
>>
>>     LOWERALPHA = %x61-7A
>>     header-name = "!" / "#" / "$" / "%" / "&" / "'" /
>>                   "*" / "+" / "-" / "." / "^" / "_" /
>>                   "`" / "|" / "~" / DIGIT / LOWERALPHA
>>
>> Which is the all-lower-case equivalent to the header-name definition
>> currently in httpbis.
>
> Actually, it's:
>     LOWERALPHA = %x61-7A
>     header-char = "!" / "#" / "$" / "%" / "&" / "'" /
>                   "*" / "+" / "-" / "." / "^" / "_" /
>                   "`" / "|" / "~" / DIGIT / LOWERALPHA
>     header-name = (":" / header-char) *header-char
>
> though this might be better:
>     header-name = [":"] 1*header-char
>
> and if we're feeling especially generous:
>     header-name = 1*(":" / header-char)
>
> This sounds reasonable - though I think that this needs to be a little
> more nuanced.  Header compression might describe a transformation that
> produces the limited set of values as described above, but the *input*
> to header compression needs to be a valid HTTP header (or a special
> HTTP/2.0 :-header).

Received on Tuesday, 13 August 2013 22:27:33 UTC