SPDY (Speedy) protocol developed by google
What is SPDY or Speedy Protocol?
Speedy or SPDY is an expermental protocol developed by google. Its an effort made to reduce the latency present in HTTP.Its a protocol for transporting web content. Google also developed an open source web server that works on speedy protocol, and claims to have achieved 60 percent reduction in web page load time.
One important thing to note is that , speedy is not built to replace HTTP protocol, but to advance http protocol. Speedy also uses the same HTTP headers but is very differnt in how the connection is managed.
Why is HTTP protocol Slow?
The main two protocols of the internet that makes the web functioning are:
Read: HTTP Protocol Working
HTTP is a protocol that works over TCP. And TCP protocol is a connection oriented protocol designed for reliable transport,delivery guarantee,order of the delivery etc. HTTP protocol is a protocol that works on top of TCP and is an application layer protocol. HTTP stands for Hyper Text Transffer Protocol. Some of the key points to note about HTTP protocol are as below.
- HTTP is a stateless protocol because each and every request in HTTP is initiated without prior information about the previous requests.
- HTTP was not designed keeping latency in mind.
- The web pages that are transmitted over the wire today, are completely different from the pages transmitted when HTTP protocol was developed.
- We never thought of redesigining the protocol with the advancement of Websites.
- The headers of both the request and reply are uncompressed. Due to considerably high size of headers the latency gets increased.
- Compression in HTTP is not always used.ie. its optional.
- Several headers which are not required to be resent, are also resent every time. Some of those headers are User agent,Host etc.
What is the main design goal of spdy protocol?
the main goals for which speedy protocol is designed are as follows.
- To improve the HTTP connection latency without touching the underlying networking infrastructure(it works in application layer, so no need to modify TCP infra).
- Make many HTTP connections to get established through a single TCP connection
- Compression of HTTP headers, which inturn will reduce the bandwidth
- Initiation of connections by the server to the client.
- Speedy protocol mandates the use of SSL for all connections, which inturn will secure websites in a more secure manner.
What are the features of Speedy Protocol?
One of the main feature of speedy protocol is the ability to multiplex unlimited number of requests in a single tcp connection.
Imagine this as something like ssh connection sharing we do.Due to this multiplexing, there is no overhead of creating another new connection for each and every request to the same server.
with the help of request priority available in speedy protocol, the client can rquest resources many times and can also assign priority to each and every request. This will prevent the bandwidth becoming conjested with unwanted content.
Due to all headers being compressed in speedy communication, less bandwidth in bytes are used for each and every request made by the client.
This feature enables servers to push data towards the clients, this is pushed to the client before the data is even requested by the client. During page downloads, this server push can improve user experience.
Who uses Speedy(spdy) Protocol currently?
Reports claim that many of the major players in the web business already started to use SPDY protocol.
- Facebook recently reported that they are using speedy protocol to improve the latency, in their servers.
A recent mail from Doug Beaver of facebook explains how they are using the protocol in their infrastructure.
You can have a look at the mail here. http://lists.w3.org/Archives/Public/ietf-http-wg/2012JulSep/0251.html
- Reports claim that the other major social networking giant twitter also adopted speedy for their servers from March 2012.
during august of this year wordpress.com also implimented speedy in their platforms.
Which Browsers support Speedy/spdy?
many major browsers in their latest versions include support for speedy protocol some of them are shown below.
- Googles Chrome supports Speedy.
- firefox also supports speedy protocol in ther latest releases
- Opera versions beyond 12, supports speedy
Which web servers currently Support Speedy?
The following web servers currently support speedy protocol.
- Apache supports speedy through its speedy module called mod_spdy
- Nginx also announced their support for speedy protocol in nginx web server