It appears to me that we do not have protections to ensure that multiple http requests over a single connection are handled correctly when http pipelining is not enabled.
Essentially if a client sends multiple requests, we will receive those requests, parse them, and dispatch them to other threads for handling. Without the pipelining enabled, the first request to be handled will be the first response written back to the channel. This leads to out of order responses.
I'm not immediately sure what the fix is. We could always enable pipelining. Or maybe the server should send a something like a 501 if it receives a requests before the initial response has been returned?