HTTP header name should be returned in lowercase
For the same request, its header may vary according to the underlying platform in terms of case sensitivity. Header has nothing to do with case sensitivity and it doesn't matter at the level of HTTP 1.1 speicification. But, in Java, header is represented as String and it does matter.
// Assumes the same request sent to Servlet and Netty
assertEquals(httpByServlet.headerNames(), httpByNetty.headerNames());
At least, the above assertion should pass. To do that, Every header in returned a set of header string should be lower cased.
Otherwise, it would be better to introduce HttpHeaders as a a representation for headers like http.requestHeaders() and http.responseHeaders() instead of http.headerNames, http.header, http.headers and http.setHeader.
Otherwise, HttpHeaders would be created for one exchange - accessors for request headers e.g. headers.get and mutators for response headers e.g. headers.set.