Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Add channel handler for server side pipelining. #62
HTTP pipelining can be tricky to handle properly on the server side.
Added a HTTPServerPipelineHandler that only lets one request through
Better servers that are more able to handle HTTP pipelining
2 times, most recently
Mar 3, 2018
So the failure here is because netcat half-closes the TCP connection when it gets EOF, which confuses the crap out of our test server. I'm going to work on that, but it'll take a few patches because the test server doesn't currently handle keep-alive properly either.
This was referenced
Mar 8, 2018
Without pipeline handler
With the pipelining handler
With the pipelining handler, and actually pipelining:
The TL;DR here is that the pipelining handler slows the server down in the non-pipelined mode by a worst-case of about 2% (these tests do no meaningful CPU work in the HTTP server itself, so the performance delta here basically is the worst case).
I'd say that's a small price to pay for correctness. ;)
(BTW, the read errors here are probably because this server closes non-keepalive connections, and that the way it does so could easily lead to TCP RST rather than EOF. We should address that in a future patch.)