Motivation: I came across an issue when I was adding/setting headers and mistakenly used an upper case header name. When using the http2 example that ships with Netty this was not an issue. But when working with a browser that supports http2, in my case I was using Firefox Nightly, I'm guessing that it interprets the response as invalid in accordance with the specifiction https://tools.ietf.org/html/draft-ietf-httpbis-http2-14#section-8.1.2 "However, header field names MUST be converted to lowercase prior to their encoding in HTTP/2. A request or response containing uppercase header field names MUST be treated as malformed" This PR suggests converting to lowercase to be the default. Modifications: Added a no-args constructor that defaults to forcing the key/name to lowercase, and providing a second constructor to override this behaviour if desired. Result: It is now possible to specify a header like this: Http2Headers headers = new DefaultHttp2Headers(true) .status(new AsciiString("200")) .set(new AsciiString("Testing-Uppercase"), new AsciiString("some value")); And the header written to the client will then become: testing-uppercase:"some value" |
||
---|---|---|
.. | ||
src | ||
pom.xml |