A labs release to get your SPDY senses tingling

By Chris Mills

For many years now, we have relied on the marriage of the TCP and HTTP protocols for handling data request/response communication, and transporting the resulting data packets to where they need to go. In short, they are how we get things done on the Web. But they are not perfect. Websites are a lot bigger and more complicated than they used to be when these protocols were first designed. HTTP in particular has problems with latency, because:

  • It can only fetch a single resource at a time, per connection
  • Only the client can initiate requests under HTTP
  • HTTP request and response headers are uncompressed, and can become rather large. In addition, many header transmissions are redundant
  • Data transmitted via HTTP is not always compressed.

In short, the web is slower than it could be, and the problem will get worse as web sites continue to increase in size and complexity. To mitigate this problem, the Google Chromium team set to work and developed a new networking protocol for the web, which would reduce latency and speed up page loading. The result is SPDY, which Google have put to work on most of their services (Twitter and a number of other sites are also using it), allowing much faster loading speeds, provided the web browser being used supports SPDY.

The good news is that we've been hard at work implementing SPDY support in Opera, so the big red O can also take advantage of these performance increases! Other advantages include better compatibility with all Google services (and other sites and applications that employ SPDY), and allowing developers to test their own SPDY based services with Opera.

We are proud to present an experimental labs release that includes our SPDY support. Please try it out, and let us know what you think.

Further SPDY information

SPDY does not completely replace HTTP and TCP — it augments and works on top of those protocols. HTTP's communication semantics and TCP's congestion control, for example, are still used, but SPDY provides many advantages, such as multiple streams per connection, and more efficient connection management and data formats.

SPDY doesn't force data compression, but SPDY user-agents MUST support gzip compression. Regardless of the Accept-Encoding header sent by the user-agent, the server may always send content encoded with gzip or deflate encoding.

Currently there are two versions of SPDY that are deployed and used in the web: spdy/2 and spdy/3. All Google services (using secure connection) and Twitter can be used with both of them - it's for the client to negotiate which version is to be used. The negotiation is being done by the NPN protocol during the SSL handshake. Of course, the client can also negotiate to use plain HTTP over SSL if desired.

Google have prepared an SPDY module for Apache 2.2, therefore anyone can deploy SPDY on their own Apache-based server and use it for creating web sites and applications.

Download our SPDY build

Please select a suitable build for your operating system:

Support notes

Opera's SPDY implementation currently supports all features of the spdy/2 and spdy/3 protocols, except for:

  • PUSH and HINT: There is no deployment of PUSH and HINT usage on the web (as far as we know), and no way to use it with mod_spdy, so we decided not to implement it for the time being, until we have something to test it on, and more evidence of actual usage.
  • The Alternate-Protocol header: Neither Chrome nor Firefox have implemented this in the way described in SPDY draft 2, moreover SPDY draft 3 does not even mention that header anymore, so we decided to not support it.
  • Persisting SETTINGS values: Servers may request that the client persists some of the connection settings sent to it in the SETTINGS frame. In such cases the client should remember such settings, and use them in all future connections (the user should also be able to clear them when desired.) This isn't a key feature of the SPDY protocol, and SPDY works perfectly fine without it, but we'll probably implement it in a future build.

How fast is it?

Our rough performance tests ran on Windows with 50ms extra latency, and revealed that SPDY gave us a 38,67% performance boost (compared to normal HTTPS) in the network layer. That's great for a start!

Google also has some SPDY performance test results available.

How do I know that Opera is using SPDY?

Use of the SPDY protocol is completely transparent for users. There is no additional scheme like spdy://, and we don't have any indicator saying ATTENTION, page loaded with SPDY!. There is an SPDY indicator extension available for Firefox and Chrome, and this should also be available for Opera, soon after we've created the necessary API to make this possible.

One way to recognise an SPDY site is by looking at the additional headers loaded with SPDY: Opera Dragonfly makes this easy. The spdy/2 additional headers are method, scheme, url and version. For spdy/3, the additional headers are :method, :scheme, :host, :path and :version.

Summary

SPDY is a useful new protocol that has already demonstrated significant performance increases over using HTTP/HTTPS alone, and Opera is proud to unveil support for it. Please let us know what you think of our experimental SPDY build, by leaving comments on this article or filing bugs through our bug wizard.

You can find much more detail about SPDY, including Google's own performance test results, at the Chromium Team SPDY Whitepaper.

Chris Mills is a web technologist, open standards evangelist and education agitator, currently working at Opera Software in the developer relations team. He spends most of his time writing articles about web standards for dev.opera.com and other publications (such as .net mag and A List Apart), giving talks at universities and industry conferences, and lobbying universities to improve their web education courses. He believes that education is the answer to everything, but in particular he is passionate about using education to improve the overall content quality, accessibility, usability and future-viability of the Web.

He is the creator of the Opera Web standards curriculum, contributor to the WaSP InterACT project, and coauthor of InterACT with web standards: A Holistic Approach to Web Design. In August 2011, he also accepted the position of co-chair of the newly-formed Web Education Community Group.

Outside work he is a heavy metal drummer, proud father of three and lover of good beer.


This article is licensed under a Creative Commons Attribution 3.0 Unported license.

Comments

  • photo

    bachokocho

    Friday, July 6, 2012

    Congratulations team! I see that the build's version number is only steps from the current Next build so will SPDY be part of 12.01?
  • photo

    Ayrton Nádgel

    Friday, July 6, 2012

    Congratulations, but is it just me or HTTPS pages Opera says that the connection is insecure.
  • photo

    Kajetan Świtalski

    Friday, July 6, 2012

    Ayrton, I can't reproduce that issue, does it happen for all HTTPS pages or for some specific page for you?
  • photo

    blackcoder

    Friday, July 6, 2012

    @ bachokocho
    Probably not. I think they just picked up some internal Opera 12.01 and integrated spdy. Opera 12.01 will probably be released in an not to far away future (that would be a really short time for testing spdy).
  • photo

    ahoj1234

    Friday, July 6, 2012

    @Kajetan Świtalski
    https://www.strava.cz/istravne/
    for example.. only because of this site is not signed or what.. :)
  • photo

    Ayrton Nádgel

    Friday, July 6, 2012

    Kajetan, all HTTPS pages. "The server attempted to apply security measures, but failed." (Ubuntu 12.04 amd64)
  • photo

    Ayrton Nádgel

    Friday, July 6, 2012

    Facebook: http://files.myopera.com/ayrtonnadgel92/albums/11843282/Captura%20de%20tela%20de%202012-07-06%2008%3A16%3A50.png
  • photo

    ahoj1234

    Friday, July 6, 2012

    @Ayrton Nádgel
    On w7 x64 is FB secured and is displayed as secured.. here is not like on your screen..
  • photo

    Christoph

    Friday, July 6, 2012

    Originally posted by bachokocho:

    Congratulations team! I see that the build's version number is only steps from the current Next build so will SPDY be part of 12.01?


    No, that means that the current Next build was used as a basis for the Labs build. It always used to be like this. No indication at all for a release date

    Originally posted by ayrtonnadgel92:

    is it just me or HTTPS pages Opera says that the connection is insecure


    Confirmed. Happens over here as well. Connections that use SPDY are shown secure for a moment and then fall back to insecure
    EDIT: Happens with Google Viewer, but not with Facebook on my end...
  • photo

    marjancek

    Friday, July 6, 2012

    I'm not sure the real-.time speed-up will be very noticeable, but hearing it improves the compatibility with google services sounds great!
  • photo

    Ruarí Ødegaard

    Friday, July 6, 2012

    It will not be part of 12.01. Version numbers for Labs builds are irrelevant.
  • photo

    vux777

    Friday, July 6, 2012

    Google img. search not improved. Still needs masking as Firefox.
  • photo

    Charles Schloss

    Friday, July 6, 2012

    " but is it just me or HTTPS pages Opera says that the connection is insecure." Yep as seen on https://twitter.com/ OS X 10.7.4 x64
  • photo

    Charles Schloss

    Friday, July 6, 2012

    opera:plugins Not showing all the plug ins on first load, have to refresh to show them all
  • photo

    Charles Schloss

    Friday, July 6, 2012

    What is the minimum font size (pixels) supposed to be? Here I see it at 0

    OS X 10.7.4
  • photo

    Kajetan Świtalski

    Friday, July 6, 2012

    The support for spdy/2 and spdy/3 can be disabled with appropriate preferences in opera:config (Network|Use Spdy2, Network|Use Spdy3). Is the 'insecure' issue reproducible after disabling it (one or both)?
  • photo

    OME

    Friday, July 6, 2012

    First impressions: Twitter has behaved perfectly with this build. I used to get stalled loading and blank pages regularly, and SPDY seems to have solved this (unless I'm just extremely lucky today).

    I usually middle click the profile names in Twitter to open them in background tabs (thus skipping the left-click pop-up mini profile step), and doing this with several profiles in quick succession used to cause problems (stalling). Also closing one Twitter tab while another was loading used to affect the one that was loading and stall it until I reloaded manually. I have yet to see any of these issues with this SPDY build, so it seems very promising. I hope it won't be too long before it's ready to be added to the Next branch/channel.

    PS. Twitter says "Trusted" here, so I haven't seen this "insecure issue" others are reporting. Win7 x64.

    EDIT: I did however get a "R6025 pure virtual function call" dialog followed by a crash while a few of my speed dials were reloading with Opera minimized just now, which I haven't seen since the 12.00 betas a couple of months ago.
  • photo

    Jim

    Friday, July 6, 2012

    It won't work on Google+ :-(
  • photo

    Martin Kadlec

    Saturday, July 7, 2012

    Charles Schloss: The 0 for minimum font size is default for some time already. It used to cause often more problems than benefits.
  • photo

    Ola P. Kleiven

    Sunday, July 8, 2012

    @Charles: Minimum font size was changed for 11.60: http://my.opera.com/desktopteam/blog/2011/10/07/ragnarok-css3-radial-gradients

    @vux777: not at all related to spdy
  • photo

    jimmy johnston

    Sunday, August 5, 2012

    how can i down load it to my opera can iny one help me please thx u
  • photo

    rschan35

    Saturday, August 11, 2012

    I have been using the latest Opera Labs since it became available and I love it. The only thing is that I cannot make it my 'Default browser'. There is no button for me to make it my default browser. Anyone out there who can help me with this dilemma?
  • photo

    Doc Flay™

    Thursday, August 23, 2012

    12.01 came and went. 12.02 is almost here.
    Is SPDY already spent, or will it move up a gear?
  • photo

    Swapnil Rustagi

    Thursday, August 23, 2012

    ^^ SPDY would come in Opera 12.50 (if it's not hit by any major problems).
  • photo

    CSRedRat

    Wednesday, October 3, 2012

    But SPDY would come in Opera 12.10?
  • photo

    Swapnil Rustagi

    Thursday, October 4, 2012

    ^^ When I wrote the comment above, Opera hadn't decided to release 12.10, directly releasing 12.50. Yes, now it would come in 12.10 and above.
  • photo

    sen

    Saturday, December 14, 2013

    Thanks for such a wonderful tribute to Mando, Marissa. Such a sad day, but such a beautiful person. Visit Adopt A Dog Or Cats
  • photo

    sen

    Saturday, December 14, 2013

    This article has some great and useful information about this subject. Thank you for sharing it in an easy to read and understandable format. Thanks for sharing this great information. Visit Inet Freakz
No new comments accepted.