5 ms·
The server doesn't support keep-alive, and it doesn't support pipelining. It seems to be built by design to have the worst possible performance for HTTP/1.1.
by bsdetector 12y ago
The server doesn't support keep-alive, and it doesn't support pipelining. It seems to be built by design to have the worst possible performance for HTTP/1.1.
Whatever problems pipelining may or may not have, a benchmark like this one loading a bunch of small static images is what it is designed for. I can see how some small-timey Go implementation would not have an actual HTTP/1.1 server, but for Google to come out with HTTP/2 without even having tested against pipelining is just pitiful.
These Google people seem hellbent on not ever having a fair comparison.
- pkulak 12y agoYour browser wouldn't even use pipelining if it was supported. The reason HTTP/2 exists is because pipeling ended up not being a solution.
- bsdetector 12y agoPipelining works fine. It's on in mobile Safari, and neither Google nor Mozilla found what software it didn't work on (so probably Superfish and other malware). If you use Firefox it's still a great way to speed up normal page loads since HTTP/2 isn't used for unencrypted data.
- bgentry 12y agoPretty sure the demo server supports keep-alive, just as all Go net/http servers do by default: https://github.com/bradfitz/http2/blob/master/h2demo/h2demo.go https://github.com/bradfitz/http2/blob/master/h2demo/h2demo....
- bsdetector 12y agoThere's no "Connection: keep-alive" in the response header. If they purposely turned it off that's even worse.
- lucian1900 12y agoThat's because it's the default in HTTP 1.1. The server would need to send "Connection: close" to disable keep-alive.
- bsdetector 12y agoApparently "connection: keep-alive" is needed to enable pipelining in the browsers: http://www.guypo.com/http-pipelining-big-in-mobile/ http://www.guypo.com/http-pipelining-big-in-mobile/