Portland, OR: Chris Storm, owner of EEE Computes, a Web consulting business, and author of The SPDY Book, had a message for all Web developers and designers at the O’Reilly Open Source Convention (OSCON): “HTTP is antiquated and obsolete.”
HTTP, the Web's fundamental protocol that’s used by all Web browsers and sites, “hasn't been updated in twelve years,” says Storm. “The last time HTTP was updated, Bill Clinton was president and there was no Ubuntu Linux,” he points out.
That might be fine, if HTTP was fast enough for today's Web, he asserts; but it's not. Strom says we need a new protocol that can deliver Web pages and sophisticated Web apps faster and more reliably. That protocol is Google's SPDY.
Google started work on SPDY, pronounced “SpeeDY,” in 2009. Then, as now, SPDY's objective was to minimize network latency by using multiplexed streams, request prioritization, and HTTP header compression.
SPDY also has Secure Socket Layer (SSL) security built in and, unlike HTTP transfers, all SPDY data is binary. SPDY is also very aggressive about compressing all data to make Web page loads even faster, says Storm.
The real speed increase, according to Storm, is from SPDY’s "framing layer for multiplexing multiple, concurrent streams across a single TCP connection.” This is used for multiplexing data requests.
Under SPDY, there is no limit to the number of Web requests that can be issued concurrently over a single SPDY connection. Because requests are interleaved on a single channel, the protocol is more efficient over TCP. HTTP, on the other hand, can only fetch one resource at a time; it supports a maximum of six connections at a time. SPDY's net effect is to cut down on latency, as the Web browser and server don't have to waste time ping-ponging data requests and responses back and forth.
How much of a difference can this make in the real world? The average Web site page contains 816K of data and requires 83 data requests using HTTP, Storm says. With SPDY, the page remains just as “heavy,” but only one data request is needed.
In addition, Storm notes, when you first connect to a website, “The HTTP connections start out cold. You don't get that much data going back and forth. No matter how much bandwidth you have, you still have to 'warm' up the tubes.'” With SPDY, you only have to warm up the connection once for fast, efficient webpage loading.
For example, Storm points to a well-known extremely well designed website front page, Amazon. Amazon’s home page takes 1.5 seconds to load on a fast connection and 4.2 seconds to load the whole page. That page typically contains 500K of data, which is delivered with 75 data requests. A bad webpage, such as the now defunct Borders bookstore chain, took 11.4 seconds to load 806K of data over 83 requests. Storm says that since 37% of broadband users are ready to give up on a site after waiting four seconds, Borders' poor Web design was one reason the company went out of business.
But, he points out, delivering the webpage goods as well as Amazon does it requires every trick a Web designer can pull out. With SPDY, all that's required to achieve similar page load speeds is that both the Web server and browser support SPDY.
Indeed, since SPDY is compatible with HTTP 1.1 semantics, you really need little more than install the appropriate Web server modules and make sure you have a proper SSL certificate. Storm says there are no code differences between HTTP and SPDY. “You use the same fundamentals of Web architecture so your pages can look exactly the same,” he says.
Of course, SPDY isn't the be-all and end-all. “File transfer protocols like ftp aren't improved by SPDY,” Storm cautions. SPDY is optimized for webpage load times. Google's numbers show that SPDY accelerates page-load times by 28% to 43% over a 2Mbps DSL line and 44% to 55% over a 4Mbps cable broadband connection.
SPDY is currently supported by up–to-date versions of the Google Chrome, Mozilla Firefox, and Amazon Kindle Silk browsers. Google and Twitter support SPDY on their websites and Facebook is committed to supporting SPDY.
SPDY is now competing with other proposed standards for HTTP 2.0. The most significant SPDY rival is Microsoft's HTTP Speed+Mobility. Storm isn't too worried about the competition, though, since “SPDY is the most heavily tested protocol ever,” he says. “SPDY has had billions of connections. Every time you use Chrome or Firefox to connect to a Google service you're using it.”
And, you know what? He makes a darn good argument. When it comes to the Web, faster – or perhaps I should say “SPDYer” – really is better.