Google has just announced that it is working on a new protocol that will minimize latency and speed up the Web experience for users. SPDY (pronounced “speedy”) is not meant to replace HTTP, the protocol that allows Web servers and browsers to talk to each other today, but it does augment HTTP. The new protocol incorporates features like multiplexed streams, request prioritization and HTTP header compression. Google has already developed a prototype Web server and a version of Google Chrome with built-in SPDY support.
Google claims that pages loaded 64% faster in lab tests in which the research team downloaded the top 25 websites. Now that the SPDY team has developed workable prototypes, Google decided to open up the process and is soliciting the “active participation, feedback and assistance of the web community.”
In today’s announcement, Google stresses that SPDY is not a replacement for HTTP. It uses HTTP methods and headers, but it overrides the parts of the protocol that manage connections and data transfer formats.
Google will soon release its open-source SPDY-enabled Web server. The source code for the SPDY-enabled version of Chrome can be found here.
Creating a Faster and More Secure Web
According to the SPDY white paper, the project’s goals are to reduce page load times by 50%, minimize deployment complexity and avoid the need for website owners to make any changes to their sites to implement SPDY. Instead, all the hard work will happen in the client and the Web server.
The team also wants SPDY to allow many concurrent HTTP requests to run across one TCP session and to make SSL the standard transport protocol.
Google clearly has an interest in making the Web experience as fast and secure as possible for its users. One of the reasons Google released its own browser was to get every other browser developer to focus on speed again. SPDY is even more ambitious. With SPDY, Google wants to change one of the most fundamental protocols on the Internet.
According to Google, these are the basic improvement of SPDY over HTTP:
- Multiplexed requests. There is no limit to the number of requests that can be issued concurrently over a single SPDY connection. Because requests are interleaved on a single channel, the efficiency of TCP is much higher.
- Prioritized requests. Clients can request certain resources to be delivered first. This avoids the problem of congesting the network channel with non-critical resources when a high-priority request is pending.
- Compressed headers. Clients today send a significant amount of redundant data in the form of HTTP headers. Because a single Web page may require 50 or 100 subrequests, this data is significant. Compressing the headers saves a significant amount of latency and bandwidth compared to HTTP.