You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However, header field names MUST be converted to lowercase prior to their encoding in HTTP/2.
Currently if you set a value in Metadata to be uppercase "Bar", the receiving server will also get it as "Bar".
Not really sure how we should fix it, in gRPC (t *http2Client) NewStream() (grpc/transport/http2_client.go:232) or upstream in (e *Encoder) WriteField(f HeaderField) of (golang.org/x/net/http2/hpack/encode.go:49)
The text was updated successfully, but these errors were encountered:
Note that only the http2 spec says that field names must be lowercase (https://httpwg.github.io/specs/rfc7540.html#rfc.section.8.1.2). The hpack spec says nothing about it. I believe in theory other protocols could use hpack but make different decisions about the case of fields.
So I'm inclined to say it's the caller's responsibility.
But perhaps we can add a boolean to hpack.Encoder like AllowCapital bool defaulting to true from NewEncoder so people CAN do weird things if they want, like the options in the http2 framer to send illegal frames.
According to the HTTP2 spec:
Currently if you set a value in Metadata to be uppercase "Bar", the receiving server will also get it as "Bar".
Not really sure how we should fix it, in gRPC
(t *http2Client) NewStream()
(grpc/transport/http2_client.go:232
) or upstream in(e *Encoder) WriteField(f HeaderField)
of (golang.org/x/net/http2/hpack/encode.go:49
)The text was updated successfully, but these errors were encountered: