Re: UTF-8 or ASCII Header Names?

That opens another can of worms, which is Unicode string comparison.

If not ASCII, I'd rather have header values be arbitrary octet strings and
for string equality to be byte-wise; then you can put UTF-8 in there if you
wish.

On Tue, Aug 13, 2013 at 3:39 PM, James M Snell <jasnell@gmail.com> wrote:

> -1, that's certainly not the recommendation I was making.
>
> Header field names ought not be UTF-8... Allowing UTF-8 in header
> field values is extremely valuable.
>
> - James
>
> On Tue, Aug 13, 2013 at 3:36 PM, Fred Akalin <akalin@google.com> wrote:
> > I'm definitely for removing any reference to UTF-8 in the header
> compression
> > spec, if only to avoid the giant can of worms it introduces with
> > lower-casing.
> >
> >
> > On Tue, Aug 13, 2013 at 3:26 PM, James M Snell <jasnell@gmail.com>
> wrote:
> >>
> >> 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 23:02:06 UTC