Hello,
On Thu, Dec 28, 2017 at 12:29 PM, Lukas Tribus <[email protected]> wrote: > Hello, > > >> But in this example, you're using HTTP/1.1, The "Connection" header is >> perfectly valid for 1.1. It's HTTP/2 which forbids it. There is no >> inconsistency here. > > For me a request like this: > $ curl -kv --http2 https://localhost/111 -H "Connection: keep-alive" > -d "bla=bla" > > Fired multiple times from the shell, leads to a "400 Bad Request" > response in about 20 ~ 30 % of the cases and is forwarded to the > backend in other cases. > I'm unable to reproduce a "400 Bad Request" when using GET request in > my quick tests. > > > > Here 2 exact same requests with different haproxy behavior: My previous mail proves that haproxy's behavior is inconsistent. However I am unable to reproduce the issue with Firefox: none of the quantum releases (57.0, 57.0.1, 57.0.2, 57.0.3) emit a connection header in my testing: - https://http2.golang.org/reqinfo never shows a connection header (not even with POST) - sniffing with wiresshark (using SSLKEYLOGFILE) also shows that Firefox never emits a connection header in H2 - the developer tools *always* show a connection header in the request, although there really isn't one - clearly there is a discrepancy between what is transmitted on the wire and what is shown on in dev tools What am I missing? Can you guys provide a decrypted trace showing this behavior, the output of the http2 golang test and can you please both clarify which OS you reproduce this on? Thanks, Lukas

