World Library  
Flag as Inappropriate
Email this Article


Article Id: WHEBN0025062608
Reproduction Date:

Title: Spdy  
Author: World Heritage Encyclopedia
Language: English
Subject: Internet Explorer, Amazon Silk, Nginx, Browser security, CRIME
Publisher: World Heritage Encyclopedia


SPDY (pronounced speedy)[1] is an open networking protocol developed primarily at Google for transporting web content.[1] SPDY manipulates HTTP traffic, with particular goals of reducing web page load latency and improving web security. SPDY achieves reduced latency through compression, multiplexing, and prioritization [1] although this depends on a combination of network and website deployment conditions.[2][3] The name "SPDY" is a trademark of Google and is not an acronym.[4]

As of July 2012, the group developing SPDY has stated publicly that it is working toward standardisation (available as an Internet Draft).[5] The first draft of HTTP/2 is using SPDY as the working base for its specification draft and editing.[6]

Implementations of SPDY exist in Chromium,[7] Mozilla Firefox,[8] Opera,[9] Amazon Silk, Internet Explorer,[10] and Safari.[11]


The goal of SPDY is to reduce web page load time.[12] This is achieved by prioritizing and multiplexing the transfer of web page subresources so that only one connection per client is required.[1][13] TLS encryption is nearly ubiquitous in SPDY implementations, and transmission headers are gzip- or DEFLATE-compressed by design[14] (in contrast to HTTP, where the headers are sent as human-readable text). Moreover, servers may hint or even push content instead of awaiting individual requests for each resource of a web page.[15]

SPDY requires the use of SSL/TLS (with TLS extension ALPN), and does not support operation over plain TCP. The requirement for SSL is for security and to avoid incompatibility when communication is across a proxy.

Relation to HTTP

SPDY does not replace HTTP; it modifies the way HTTP requests and responses are sent over the wire.[1] This means that all existing server-side applications can be used without modification if a SPDY-compatible translation layer is put in place.

SPDY is effectively a tunnel for the HTTP and HTTPS protocols. When sent over SPDY, HTTP requests are processed, tokenized, simplified and compressed. For example, each SPDY endpoint keeps track of which headers have been sent in past requests and can avoid resending the headers that have not changed; those that must be sent are compressed.

The IETF working group for HTTPbis has released the draft of HTTP/2.[16] SPDY (draft-mbelshe-httpbis-spdy-00) was chosen as the starting point.[17][18]


The server push mechanism pushes content regardless of existing cache which can result in waste of bandwidth. The workaround is to use the server hint mechanism.[19]

Protocol support

For use within HTTPS, SPDY needs the TLS extension Next Protocol Negotiation (NPN),[20] thus browser and server support depends on the HTTPS library.

OpenSSL 1.0.1 or greater introduces NPN.[21] Patches to add NPN support have also been written for NSS and TLSLite.[22]

SPDY is scheduled to switch from NPN to Application-Layer Protocol Negotiation (ALPN) before the end of 2014.[23]

Security Support Provider Interface (SSPI) from Microsoft have not implemented the NPN extension to its TLS implementation. This has prevented SPDY inclusion in the latest .NET Framework versions. Since SPDY specification is being refined and HTTP/2 is expected to include SPDY implementation one could expect Microsoft to release support after HTTP/2 is finalized.

Protocol versions

SPDY is a versioned protocol. In its control frames there are 15 dedicated bits to indicate the version of the session protocol.

  • Version 1: version 1 of the SPDY protocol is not used anymore.[24]
  • Version 2: soon to be discontinued. Nginx supports SPDY/2 in versions prior to 1.5.10.[25] Firefox 28 and recent versions of Chrome drop support for it.[26][27] OpenLiteSpeed 1.1 and up support SPDY/2.[28]
  • Version 3: SPDY v3 introduced support for flow control, updated the compression dictionary, and removed wasted space from certain frames, along with other minor bug fixes.[14] Firefox supports SPDY v3 in Firefox 15.[29] OpenLiteSpeed 1.1 and up support SPDY/3.[28]
  • Version 3.1: SPDY v3.1 introduced support for session-layer flow control, and removed the CREDENTIALS frame (and associated error codes).[30] Firefox 27 has added SPDY 3.1 support.[31] OpenLiteSpeed 1.2.7 introduces SPDY/3.1 support.[32] Nginx 1.5.10 supports SPDY/3.1.[33]
  • Version 4.0: SPDY v4 alpha3 is more closely aligned with the HTTP/2 draft; it has a new stream flow control and error codes unified with the HTTP/2 draft.[34]

Client (browser) support and usage

  • Google Chrome/Chromium.[35][36] SPDY sessions in Chrome can be inspected via the URI: chrome://net-internals/#events&q=type:SPDY_SESSION%20is:active. There is a command-line switch for Google Chrome (--enable-websocket-over-spdy) which enables an early, experimental implementation of WebSocket over SPDY.[37] SPDY protocol functionality can be (de)activated by toggling "Enable SPDY/4" setting on local chrome://flags page.
  • Firefox supports SPDY 2 from version 11, and default-enabled since 13 and later. (Also SeaMonkey version 2.8+.) SPDY protocol functionality can be (de)activated by toggling the network.http.spdy.enabled variable in about:config.[8] Firefox 15 added support for SPDY 3.[29] Firefox 27 has added SPDY 3.1 support.[31] Firefox 28 has removed support of SPDY 2.[26] about:networking (or the SPDY indicator extension) shows if a website uses SPDY.
  • Opera browser added support for SPDY as of version 12.10.[38]
  • Internet Explorer 11 added support for SPDY version 3,[39][40] but not for the Windows 7 version.[41] A problem experienced by some users of Windows 8.1 and Internet Explorer 11 is that on initial loading, Google says "Page not found" but on reloading, it is fine. One fix for this is to disable SPDY/3 in Internet Options > Advanced.[42] After version 11, IE will drop the support of SPDY, as it will adopt HTTP/2.[43]
  • Amazon's Silk browser for the Kindle Fire uses the SPDY protocol to communicate with their EC2 service for Web page rendering.[44]
  • Safari 8 and third-party applications in OS X 10.10 and iOS 8 adds support for SPDY 2, 3 and 3.1.[45]

Server support and usage

As of November 2014, approximately 2.3% of all websites support SPDY.[46]

Some Google services (e.g. Google search, Gmail, and other SSL-enabled services) use SPDY when available.[47] Google's ads are also served from SPDY-enabled servers.[48]

A brief history of SPDY support amongst major web players:

  • In March 2012, Twitter enabled SPDY on its servers, at the time making it the second largest site known to deploy SPDY.[49]
  • In March 2012, the open source Jetty Web Server announced support for SPDY in version 7.6.2 and 8.1.2,[50] while other open source projects were working on implementing support for SPDY, like node.js,[51][52] Apache (mod_spdy),[53] curl,[54] and nginx.[55]
  • In April 2012 Google started providing SPDY packages for Apache servers which led some smaller websites to provide SPDY support.[56]
  • In May 2012 F5 Networks announced support for SPDY in its BIG-IP application delivery controllers.[57]
  • In June 2012 NGINX, Inc. announced support for SPDY in the open source web server Nginx.[58]
  • In July 2012 Facebook announced implementation plans for SPDY.[59] By March 2013 SPDY was implemented by some of their public web servers.[60]
  • In August 2012 announced support for SPDY (using nginx) across all their hosted blogs.[61]
  • In June 2013, LiteSpeed Technologies announced support for SPDY/2 and SPDY/3 on OpenLiteSpeed, their open source HTTP server.[28] Support for SPDY/3.1 was announced November 2013.[32]
  • In January 2014, Synology announced SPDY is included in the new DSM 5.0.[62]
  • In February 2014, CloudFlare using nginx announced automatic support for SPDY v3.1 for all customers with SSL/TLS certificates.[63]
  • In May 2014, MaxCDN using nginx announced support for SPDY v3.1 via customers' Pull Zone settings and their API.[64]
  • In October 2014, Yahoo shows support of SPDY on the Yahoo Homepage - [65]

According to W3Techs most SPDY-enabled websites use nginx.[66]

See also


  1. ^ a b c d e "SPDY: An experimental protocol for a faster web". Chromium Developer Documentation. Retrieved 2009-11-13. 
  2. ^ "Can SPDY really make the web faster?". Retrieved 21 July 2014. 
  3. ^ Podjarny, Guy. "Not as SPDY as You Thought". Retrieved 12 October 2012. 
  4. ^ "Google Permissions: Guidelines for Third Party Use of Google Brand Features". Google. Retrieved September 30, 2011. 
  5. ^ "SPDY Protocol on IETF". Retrieved 2012-02-08. 
  6. ^ Nottingham, Mark. "First draft of HTTP/2". HTTP Working Group Mailing List. Retrieved 2 December 2012. 
  7. ^ "SPDY on Google servers?". Retrieved 2012-02-28. 
  8. ^ a b "Mozilla Bug 528288 - Implement SPDY protocol". 
  9. ^ "Opera: Built-in support for the SPDY protocol". Retrieved 2012-11-06. 
  10. ^ "IE11 SPDY/3 confirmed". Retrieved 2013-06-25. 
  11. ^ "Apple - Press Info - Apple Announces OS X Yosemite". 2 June 2014. Retrieved 2014-06-02. 
  12. ^ "A 2x Faster Web". Official Google Chromium Blog. 2009-11-11. Retrieved 2009-11-13. 
  13. ^ Iljitsch van Beijnum (2009-11-12). "SPDY: Google wants to speed up the web by ditching HTTP". Ars Technica. Retrieved 2009-11-13. 
  14. ^ a b "SPDY Protocol - Draft 3". Retrieved 25 August 2012. 
  15. ^ Mirko Lindner (13 November 2009). "Google stellt HTTP-Alternative SPDY vor" (in Deutsch). Retrieved 2011-10-21. 
  16. ^ Nottingham, Mark. "What's next for HTTP". Retrieved 2012-03-31. 
  17. ^ WG Review: Hypertext Transfer Protocol Bis (httpbis)
  18. ^ "HTTPbis Working Group Start To Consider HTTP/2.0". InfoQ. 2012-04-28. Retrieved 2012-08-09. 
  19. ^ "Server Push and Server Hints - The Chromium Projects". Retrieved 2012-05-10. 
  20. ^ NPN protocol and explanation about its need to tunnel SPDY over HTTPS.
  21. ^ Openssl 1.0.1 changelog.
  22. ^ TLS Next Protocol Negotiation. Section: Implementations.
  23. ^ NPN and ALPN, 20 Mar 2013
  24. ^ SPDY Protocol - Draft 2: "Currently, the only valid string is "spdy/2" (spdy/1 isn't implemented anywhere anymore)".
  25. ^ "Module ngx_http_spdy_module". Retrieved 2014-06-03. 
  26. ^ a b "Firefox Beta Notes - Desktop". 2014-02-06. Retrieved 2014-02-07. 
  27. ^ "Issue 303957 - chromium - Make Chrome support only SPDY/3 and above - An open-source project to help move the web forward. - Google Project Hosting". 2013-10-03. Retrieved 2014-02-19. 
  28. ^ a b c OpenLiteSpeed 1.1 (With SPDY!) Retrieved 2013-08-12.
  29. ^ a b "Firefox 15 — Release Notes". Retrieved 3 September 2012. 
  30. ^ "SPDY Protocol - Draft 3.1". Retrieved 17 November 2013. 
  31. ^ a b "Firefox Notes Desktop". 2014-02-04. Retrieved 2014-02-05. 
  32. ^ a b OpenLiteSpeed 1st Web Server to Support SPDY/3.1! Retrieved 2014-1-10.
  33. ^ NGINX Announces Support for SPDY/3.1 Retrieved 2014-02-04.
  34. ^ "Upcoming SPDY/4 changes to bring it more in sync with the HTTP/2 draft". Retrieved 27 February 2014. 
  35. ^ Chromium SPDY client implementation.
  36. ^ Chromium: SPDY proxy examples.
  37. ^ List of Chromium Command Line Switches.
  38. ^ Opera 12.10 Changelog
  39. ^ "WebGL, SPDY/3, New Dev Tools, & More Confirmed For IE11 In Win 8.1". Microsoft News. 
  40. ^ "IE11 Changes". Microsoft. 
  41. ^ Paul Thurrott's Supersite for Windows: Microsoft Releases Internet Explorer 11 for Windows 7
  42. ^ "Google not loading first time in IE11 via a web proxy on Windows 8.1? Turn off SPDY support. | The Angry Technician". Retrieved 2014-02-19. 
  43. ^ Rob Trace, David Walp (October 8, 2014). "HTTP/2: The Long-Awaited Sequel". Microsoft. Retrieved 8 October 2014. 
  44. ^ Ryan Paul (28 September 2011). "Amazon's Silk Web browser adds new twist to old idea". Retrieved 2011-10-21. 
  45. ^ "What's New in Foundation Networking". Apple inc. Retrieved 2014-07-07. 
  46. ^ Usage of SPDY for websites.
  47. ^ spdy-dev mailing list: SPDY on Google servers?.
  48. ^ Google Speeds Up Web-Page Downloads with SPDY Protocol - Cloud Computing - News & Reviews. (2011-06-20). Retrieved on 2013-11-21.
  49. ^ Twitter Adopts SPDY.
  50. ^ Jetty Feature SPDY.
  51. ^ "indutny/node-spdy · GitHub". Retrieved 2012-05-10. 
  52. ^ Fedor Indutny (2012-01-24). "What the $%@! is SPDY - - scaling node.js applications one callback at a time". Retrieved 2012-05-10. 
  53. ^ "mod-spdy - Apache SPDY module - Google Project Hosting". Retrieved 2012-05-10. 
  54. ^ "libspdy". 2011-10-18. Retrieved 2012-05-10. 
  55. ^!/nginxorg/status/192301063934705665.
  56. ^ "mod_spdy - mod_spdy — Google Developers". Google. Retrieved 2012-05-10. 
  57. ^ F5 Helps Organizations Improve User Experience and Simplify Management with First Integrated SPDY Gateway | About F5 | F5 Networks. (2012-05-08). Retrieved on 2013-11-21.
  58. ^ "Announcing SPDY draft 2 implementation in nginx". Nginx. 2012-06-15. Retrieved 2012-06-16. 
  59. ^ Beaver, Doug. "HTTP2 Expression of Interest". W3C. Retrieved 15 July 2012. 
  60. ^ Finley, Klint. "Facebook Makes Itself a Bit More SPDY". Wired. Retrieved 18 March 2013. 
  61. ^ "Just enabled #SPDY for all -hosted sites.". 2012-08-28. Retrieved 2012-08-28. 
  62. ^ [1] DSM 5.0 beta
  63. ^ John Graham-Cumming. "Staying up to date with the latest protocols: SPDY/3.1 | CloudFlare Blog". Retrieved 2014-02-19. 
  64. ^ Justin Dorfman. "Now Serving: SPDY 3.1". Retrieved 2014-05-20. 
  65. ^ [2] Support of SPDY by Yahoo on
  66. ^ Distribution of web servers among websites that use SPDY

External links

  • SPDY Documentation
  • Real-Time SPDY (HTTPS) Performance Test
  • SPDY: Google wants to speed up the web by ditching HTTP
  • SPDY-Whitepaper
  • Apache SPDY module
  • SPDY Review and Analysis
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.