Google looked into Protocols before (see their research regarding TCP Slow Start here) and now tries to tackle some problems HTTP has with today’s kind of web requests.
The goals alltogether sound like this could really be adopted quickly and give especially the - still a bit slow - mobile internet a boost. The key goals are:
- To target a 50% reduction in page load time. Our preliminary results have come close to this target (see below).
- To minimize deployment complexity. SPDY uses TCP as the underlying transport layer, so requires no changes to existing networking infrastructure.
- To avoid the need for any changes to content by website authors. The only changes required to support SPDY are in the client user agent and web server applications.
- To bring together like-minded parties interested in exploring protocols as a way of solving the latency problem. We hope to develop this new protocol in partnership with the open-source community and industry specialists.
- External work (experimental)
- Python implementation of a SPDY server: http://github.com/mnot/nbhttp/tree/spdy
- Java implementation of SPDY client/server: http://svn.apache.org/repos/asf/tomcat/trunk/modules/tomcat-lite
- Apache module for SPDY: http://code.google.com/p/mod-spdy/
- Ruby SPDY: https://github.com/igrigorik/spdy
- node.js SPDY: https://github.com/indutny/node-spdy
- Ruby wrapper around Chromium SPDY framer: https://github.com/romanbsd/spdy
- Go SPDY: http://golang.org/pkg/http/spdy/
- Erlang SPDY: https://github.com/RJ/erlang-spdy
- C SPDY (libspdy): http://libspdy.org/index.html (to be used by libcurl: http://daniel.haxx.se/blog/2011/10/18/libspdy/)
- Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=528288
- C SPDY (spindly): https://github.com/bagder/spindly
- C SPDY (spdylay): https://github.com/tatsuhiro-t/spdylay
- iPhone SPDY: https://github.com/sorced-jim/SPDY-for-iPhone