SPDY

From Wikipedia, the free encyclopedia

Template:Short description Script error: No such module "about". Template:IPstack SPDY (pronounced "speedy")[1] is an obsolete open-specification communication protocol developed for transporting web content.[1] SPDY became the basis for HTTP/2 specification. However, HTTP/2 diverged from SPDY and eventually HTTP/2 subsumed all use cases of SPDY.[2] After HTTP/2 was ratified as a standard, major implementers, including Google, Mozilla, and Apple, deprecated SPDY in favor of HTTP/2. Since 2021, no modern browser supports SPDY.

Google announced SPDY in late 2009 and deployed in 2010. 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.[3][4][5] The name "SPDY" is not an acronym.[6]

History

HTTP/2 was first discussed when it became apparent that SPDY was gaining traction with implementers (like Mozilla and nginx), and was showing significant improvements over HTTP/1.x. After a call for proposals and a selection process, SPDY was chosen as the basis for HTTP/2. Since then, there have been a number of changes, based on discussion in the Working Group and feedback from implementers.[2]

As of July 2012, the group developing SPDY stated publicly that it was working toward standardisation (available as an Internet Draft).[7] The first draft of HTTP/2 used SPDY as the working base for its specification draft and editing.[8] The IETF working group for HTTPbis has released the draft of HTTP/2.[9] SPDY (draft-mbelshe-httpbis-spdy-00) was chosen as the starting point.[10][11]

Throughout the process, the core developers of SPDY have been involved in the development of HTTP/2, including both Mike Belshe and Roberto Peon.

Chromium,[12] Mozilla Firefox,[13] Opera,[14] Amazon Silk, Internet Explorer,[15] and Safari[16] expressed support for SPDY at the time.

In February 2015, Google announced that following ratification of the HTTP/2 standard, support for SPDY would be deprecated and withdrawn.[17] On May 15, 2015, HTTP/2 was officially ratified as Template:IETF RFC.

On February 11, 2016, Google announced that Chrome would no longer support SPDY after May 15, 2016, the one-year anniversary of Template:IETF RFC which standardized HTTP/2.[18]

On January 25, 2019, Apple announced that SPDY would be deprecated in favor of HTTP/2, and would be removed in future releases.[19]

Google removed SPDY support in Google Chrome 51 which was released in 2016.[20] Mozilla removed it in Firefox 50.[21] Apple has deprecated the technology in macOS 10.14.4 and iOS 12.2.[19]

Protocol versions

Page Module:Message box/ambox.css has no content.

SPDY is a discontinued versioned protocol. SPDY control frames contain 15 dedicated bits to indicate the version of protocol used for the current session.[22]

  • Version 1
  • Version 2: Nginx supports SPDY/2 in versions prior to 1.5.10.[23] Firefox 28 and recent versions of Chrome drop support for it.[24][25] OpenLiteSpeed 1.1 and up support SPDY/2.[26]
  • 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.[27] Firefox supports SPDY v3 in Firefox 15.[28] OpenLiteSpeed 1.1 and up support SPDY/3.[26]
  • Version 3.1: SPDY v3.1 introduced support for session-layer flow control, and removed the CREDENTIALS frame (and associated error codes).[29] Firefox 27 has added SPDY 3.1 support.[30] OpenLiteSpeed 1.2.7 introduces SPDY/3.1 support.[31] Nginx 1.5.10 supports SPDY/3.1.[32] F5 BIGIP 11.6 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]

Design

The goal of SPDY is to reduce web page load time.[35] This is achieved by prioritizing and multiplexing the transfer of web page subresources so that only one connection per client is required.[1][36] TLS encryption is nearly ubiquitous in SPDY implementations, and transmission headers are gzip- or DEFLATE-compressed by design[27] (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.[37]

SPDY requires the use of SSL/TLS (with TLS extension ALPN) for security but it also supports 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.

Protocol support

Page Module:Message box/ambox.css has no content.

For use within HTTPS, SPDY requires the TLS extension Next Protocol Negotiation (NPN)[38] or Application-Layer Protocol Negotiation (ALPN)[39] thus browser and server support depends on the HTTPS library.

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

Microsoft had not implemented the NPN extension in the Windows TLS/SSL Security Support Provider, preventing SPDY's inclusion in the .NET Framework. Limited HTTP/2 support was added in .NET Framework 4.6 and expanded in .NET Core.[42]

Client (browser) support and usage

  • Google Chrome/Chromium.[43][44] 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.[45] SPDY protocol functionality can be (de)activated by toggling "Enable SPDY/4" setting on local chrome://flags page. Chromium is expected to remove support for SPDY and Next Protocol Negotiation in early 2016, in favor of HTTP/2 and ALPN.[46] Starting with version 40.x in Feb 2015 Chrome has already dropped support for SPDY/3 and only supports SPDY/3.1 going forward. This has caused Apache websites to be without SPDY support when visited from Google Chrome.[47]
  • 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.[13] Firefox 15 added support for SPDY 3.[28] Firefox 27 has added SPDY 3.1 support.[30] Firefox 28 has removed support of SPDY 2.[24] about:networking (or the HTTP/2 and SPDY indicator add-on)[48] shows if a website uses SPDY.
  • Opera browser added support for SPDY as of version 12.10.[49]
  • Internet Explorer 11 added support for SPDY version 3,[50][51] but not for the Windows 7 version.[52] 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.[53] After version 11, IE will drop the support of SPDY, as it will adopt HTTP/2.[54]
  • Amazon's Silk browser for the Kindle Fire uses the SPDY protocol to communicate with their EC2 service for Web pages rendering.[55]
  • Safari 8 and third-party applications in OS X 10.10 and iOS 8 adds support for SPDY 2, 3 and 3.1.[56]

Server support and usage

As of May 2021, approximately 0.1% of all websites support SPDY,[57] in part due to transition to HTTP/2. In 2016, NGINX and Apache[58] were the major providers of SPDY traffic.[59] In 2015, NGINX 1.9.5 dropped SPDY support in favor of HTTP/2.[60]

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

A brief history of SPDY support amongst major web players:

  • In November 2009, Google announced SPDY as an internal project to increase the speed of the web.[63]
  • In September 2010, Google released SPDY in Chrome 6 on all platforms.[64]
  • In January 2011, Google deployed SPDY across all Google services.[65]
  • In March 2012, Twitter enabled SPDY on its servers, at the time making it the second largest site known to deploy SPDY.[66]
  • In March 2012, the open source Jetty Web Server announced support for SPDY in version 7.6.2 and 8.1.2,[67] while other open source projects were working on implementing support for SPDY, including Node.js,[68][69] Apache (mod_spdy),[70] curl,[71] and Nginx.[72]
  • In April 2012 Google started providing SPDY packages for Apache servers which led some smaller websites to provide SPDY support.[73]
  • In May 2012 F5 Networks announced support for SPDY in its BIG-IP application delivery controllers.[74]
  • In June 2012 Nginx open source web server announced support for SPDY.[75]
  • In July 2012 Facebook announced implementation plans for SPDY.[76] By March 2013 SPDY was implemented by some of their public web servers.[77]
  • In August 2012 WordPress.com announced support for SPDY (using Nginx) across all their hosted blogs.[78]
  • In June 2013, LiteSpeed Technologies announced support for SPDY/2 and SPDY/3 on OpenLiteSpeed, their open source HTTP server.[26] Support for SPDY/3.1 was announced November 2013.[31]
  • In January 2014, Synology announced SPDY is included in the new DSM 5.0.[79]
  • In February 2014, CloudFlare using nginx announced automatic support for SPDY v3.1 for all customers with SSL/TLS certificates.[80]
  • In May 2014, MaxCDN using nginx announced support for SPDY v3.1 via customers' Pull Zone settings and their API.[81]
  • In October 2014, Yahoo shows support of SPDY on the Yahoo Homepage — www.yahoo.com
  • In September 2015, the latest version of the Nginx web server dropped SPDY support in favour of HTTP/2[60]
  • In May 2016, CloudFlare releases patches to Nginx web server, the patches supports HTTP/2 and SPDY simultaneously.[82]

According to W3Techs, as of May 2021, most SPDY-enabled websites use nginx, with the LiteSpeed web server coming second.[59]

See also

Lua error in mw.title.lua at line 404: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

References

Page Template:Reflist/styles.css has no content.

  1. ^ a b c d e Page Module:Citation/CS1/styles.css has no content."SPDY: An experimental protocol for a faster web". Chromium Developer Documentation. Retrieved 2009-11-13.
  2. ^ a b Page Module:Citation/CS1/styles.css has no content."HTTP/2 Frequently Asked Questions". http2.github.io.
  3. ^ Page Module:Citation/CS1/styles.css has no content.Elkhatib, Yehia; Tyson, Gareth; Welzl, Michael (2014). 2014 IFIP Networking Conference. pp. 1–9. CiteSeerX 10.1.1.698.2343. doi:10.1109/IFIPNetworking.2014.6857089. ISBN 978-3-901882-58-6. S2CID 13841087.
  4. ^ Page Module:Citation/CS1/styles.css has no content.Podjarny, Guy. "Not as SPDY as You Thought". Archived from the original on 12 October 2012. Retrieved 12 October 2012.
  5. ^ Page Module:Citation/CS1/styles.css has no content.Abdelsalam, Ahmed; Celandroni, Nedo; Collina, Matteo; Cruickshank, Haitham; Fairhurst, Gorry; Ferro, Erina; Gotta, Alberto; Luglio, Michele; Roseti, Cesare (2015-07-01). "A deep analysis on future web technologies and protocols over broadband GEO satellite networks". International Journal of Satellite Communications and Networking. 33 (5): 451–472. doi:10.1002/sat.1120. ISSN 1542-0981.
  6. ^ Page Module:Citation/CS1/styles.css has no content."SPDY frequently asked questions". The Chromium Projects. Retrieved 2015-02-23. We wanted a name that captures speed. SPDY, pronounced "SPeeDY", captures this and also shows how compression can help improve speed.
  7. ^ Page Module:Citation/CS1/styles.css has no content."SPDY Protocol on IETF". Retrieved 2012-02-08.
  8. ^ Page Module:Citation/CS1/styles.css has no content.Nottingham, Mark. "First draft of HTTP/2". HTTP Working Group Mailing List. Retrieved 2 December 2012.
  9. ^ Page Module:Citation/CS1/styles.css has no content.Nottingham, Mark. "What's next for HTTP". Retrieved 2012-03-31.
  10. ^ Page Module:Citation/CS1/styles.css has no content."Fwd: [new-work] WG Review: Hypertext Transfer Protocol Bis (httpbis)".
  11. ^ Page Module:Citation/CS1/styles.css has no content."HTTPbis Working Group Start To Consider HTTP/2.0". InfoQ. 2012-04-28. Retrieved 2012-08-09.
  12. ^ Page Module:Citation/CS1/styles.css has no content."SPDY on Google servers?". Retrieved 2012-02-28.
  13. ^ a b Page Module:Citation/CS1/styles.css has no content."Mozilla Bug 528288 - Implement SPDY protocol".
  14. ^ Page Module:Citation/CS1/styles.css has no content."Opera: Built-in support for the SPDY protocol". Retrieved 2012-11-06.
  15. ^ Page Module:Citation/CS1/styles.css has no content."IE11 SPDY/3 confirmed". 2013-06-25. Archived from the original on 2013-06-30. Retrieved 2013-06-25.
  16. ^ Page Module:Citation/CS1/styles.css has no content."Apple — Press Info — Apple Announces OS X Yosemite". 2 June 2014. Retrieved 2014-06-02.
  17. ^ Page Module:Citation/CS1/styles.css has no content.Chris Bentzel & Bence Béky (9 February 2015). "Hello HTTP/2, Goodbye SPDY".
  18. ^ Page Module:Citation/CS1/styles.css has no content.Béky, Bence (February 11, 2016). "Transitioning from SPDY to HTTP/2". Retrieved February 12, 2016.
  19. ^ a b Page Module:Citation/CS1/styles.css has no content.Marshall, Scott (2019-01-25). "Removing Legacy SPDY Protocol Support". WebKit. Retrieved 2019-03-07.
  20. ^ Page Module:Citation/CS1/styles.css has no content."Transitioning from SPDY to HTTP/2". Chromium Blog. Retrieved 2022-02-05.
  21. ^ Page Module:Citation/CS1/styles.css has no content."1287132 - Disable SPDY 3.1". bugzilla.mozilla.org.
  22. ^ SPDY Protocol - Draft 2: "Currently, the only valid string is "spdy/2" (spdy/1 isn't implemented anywhere anymore)".
  23. ^ Page Module:Citation/CS1/styles.css has no content."Module ngx_http_spdy_module". Nginx.org. Retrieved 2014-06-03.
  24. ^ a b Page Module:Citation/CS1/styles.css has no content."Firefox Beta Notes — Desktop". 2014-02-06. Retrieved 2014-02-07.
  25. ^ Page Module:Citation/CS1/styles.css has no content."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.
  26. ^ a b c OpenLiteSpeed 1.1 (With SPDY!) Retrieved 2013-08-12.
  27. ^ a b Page Module:Citation/CS1/styles.css has no content."SPDY Protocol — Draft 3". Retrieved 25 August 2012.
  28. ^ a b Page Module:Citation/CS1/styles.css has no content."Firefox 15 — Release Notes". Retrieved 3 September 2012.
  29. ^ Page Module:Citation/CS1/styles.css has no content."SPDY Protocol — Draft 3.1". Retrieved 17 November 2013.
  30. ^ a b Page Module:Citation/CS1/styles.css has no content."Firefox Notes Desktop". 2014-02-04. Retrieved 2014-02-05.
  31. ^ a b OpenLiteSpeed 1st Web Server to Support SPDY/3.1! Retrieved 2014-1-10.
  32. ^ NGINX Announces Support for SPDY/3.1 Retrieved 2014-02-04.
  33. ^ F5 Bigip 11.6.0 Release Notes Retrieved 2015-03-10.
  34. ^ Page Module:Citation/CS1/styles.css has no content."Upcoming SPDY/4 changes to bring it more in sync with the HTTP/2 draft". Retrieved 27 February 2014.
  35. ^ Page Module:Citation/CS1/styles.css has no content."A 2x Faster Web". Official Google Chromium Blog. 2009-11-11. Retrieved 2009-11-13.
  36. ^ Page Module:Citation/CS1/styles.css has no content.Iljitsch van Beijnum (2009-11-12). "SPDY: Google wants to speed up the web by ditching HTTP". Ars Technica. Retrieved 2009-11-13.
  37. ^ Page Module:Citation/CS1/styles.css has no content.Mirko Lindner (13 November 2009). "Google stellt HTTP-Alternative SPDY vor" (in Deutsch). Retrieved 2011-10-21.
  38. ^ NPN protocol and explanation about its need to tunnel SPDY over HTTPS.
  39. ^ Page Module:Citation/CS1/styles.css has no content."ImperialViolet - NPN and ALPN". www.imperialviolet.org. Retrieved 2021-06-08.
  40. ^ Openssl 1.0.1 changelog.
  41. ^ TLS Next Protocol Negotiation. Section: Implementations Script error: No such module "webarchive"..
  42. ^ Page Module:Citation/CS1/styles.css has no content.Aagesen, Jakob. "http/2 support". Microsoft Q&A. Retrieved 28 May 2025.
  43. ^ Chromium SPDY client implementation.
  44. ^ Chromium: SPDY proxy examples Script error: No such module "webarchive"..
  45. ^ List of Chromium Command Line Switches.
  46. ^ Page Module:Citation/CS1/styles.css has no content.Bentzel, Chris; Béky, Bence (February 9, 2015). "Hello HTTP/2, Goodbye SPDY". Chromium Blog. Retrieved 9 February 2015.
  47. ^ Page Module:Citation/CS1/styles.css has no content."Google Groups". groups.google.com.
  48. ^ Page Module:Citation/CS1/styles.css has no content."HTTP/2 and SPDY indicator". Add-ons for Firefox. Mozilla. 2014-11-26. Archived from the original on 2015-02-22. Retrieved 2015-02-12.
  49. ^ Page Module:Citation/CS1/styles.css has no content.David Honneffer, Documentation Specialist. "Opera: Opera 12.10 Changelog".
  50. ^ Page Module:Citation/CS1/styles.css has no content."WebGL, SPDY/3, New Dev Tools, & More Confirmed For IE11 In Win 8.1". Microsoft News. Archived from the original on 2013-06-30. Retrieved 2013-06-26.
  51. ^ Page Module:Citation/CS1/styles.css has no content."IE11 Changes". Microsoft.
  52. ^ Page Module:Citation/CS1/styles.css has no content."Microsoft Releases Internet Explorer 11 for Windows 7". 2013-11-07.
  53. ^ Page Module:Citation/CS1/styles.css has no content."Google not loading first time in IE11 via a web proxy on Windows 8.1? Turn off SPDY support. | The Angry Technician". Angrytechnician.wordpress.com. 2014-01-16. Retrieved 2014-02-19.
  54. ^ Page Module:Citation/CS1/styles.css has no content.Rob Trace; David Walp (October 8, 2014). "HTTP/2: The Long-Awaited Sequel". Microsoft. Retrieved 8 October 2014.
  55. ^ Page Module:Citation/CS1/styles.css has no content.Ryan Paul (28 September 2011). "Amazon's Silk Web browser adds new twist to old idea". Retrieved 2011-10-21.
  56. ^ Page Module:Citation/CS1/styles.css has no content."What's New in Foundation Networking" (PDF). Apple inc. Retrieved 2014-07-07.
  57. ^ Page Module:Citation/CS1/styles.css has no content."Usage of SPDY for websites". w3techs.com. Retrieved 2021-05-04.
  58. ^ Page Module:Citation/CS1/styles.css has no content."Usage of web servers for websites". w3techs.com. Retrieved 2016-07-26.
  59. ^ a b Page Module:Citation/CS1/styles.css has no content."Distribution of Web Servers among websites that use SPDY". Retrieved 2021-05-04.
  60. ^ a b Page Module:Citation/CS1/styles.css has no content."HTTP/2 Supported in Open Source NGINX 1.9.5 - NGINX". 22 September 2015.
  61. ^ spdy-dev mailing list: SPDY on Google servers?.
  62. ^ Google Speeds Up Web-Page Downloads with SPDY Protocol - Cloud Computing - News & Reviews[permanent dead link]. eWeek.com (2011-06-20). Retrieved on 2013-11-21.
  63. ^ Page Module:Citation/CS1/styles.css has no content."Research Blog: A 2x Faster Web". Research Blog.
  64. ^ Page Module:Citation/CS1/styles.css has no content.Ido Safruti (2011-06-15). "From Fast to SPDY — Velocity 2011".
  65. ^ Page Module:Citation/CS1/styles.css has no content."Google Groups".
  66. ^ Twitter Adopts SPDY Script error: No such module "webarchive"..
  67. ^ Jetty Feature SPDY.
  68. ^ Page Module:Citation/CS1/styles.css has no content."indutny/node-spdy · GitHub". Github.com. Retrieved 2012-05-10.
  69. ^ Page Module:Citation/CS1/styles.css has no content.Fedor Indutny (2012-01-24). "What the $%@! is SPDY — blog.nodejitsu.com — scaling node.js applications one callback at a time". blog.nodejitsu.com. Retrieved 2012-05-10.
  70. ^ Page Module:Citation/CS1/styles.css has no content."mod-spdy — Apache SPDY module — Google Project Hosting". Retrieved 2012-05-10.
  71. ^ Page Module:Citation/CS1/styles.css has no content."libspdy". daniel.haxx.se. 2011-10-18. Retrieved 2012-05-10.
  72. ^ Page Module:Citation/CS1/styles.css has no content."@DeviaVir It's going well ;) So far we're on schedule, should hopefully be available by the end of May". Twitter.
  73. ^ Page Module:Citation/CS1/styles.css has no content."mod_spdy — mod_spdy — Google Developers". Retrieved 2012-05-10.
  74. ^ F5 Helps Organizations Improve User Experience and Simplify Management with First Integrated SPDY Gateway | About F5 | F5 Networks Script error: No such module "webarchive".. F5.com (2012-05-08). Retrieved on 2013-11-21.
  75. ^ Page Module:Citation/CS1/styles.css has no content."Announcing SPDY draft 2 implementation in nginx". Nginx. 2012-06-15. Retrieved 2012-06-16.
  76. ^ Page Module:Citation/CS1/styles.css has no content.Beaver, Doug. "HTTP2 Expression of Interest". W3C. Retrieved 15 July 2012.
  77. ^ Page Module:Citation/CS1/styles.css has no content.Finley, Klint. "Facebook Makes Itself a Bit More SPDY". Wired. Retrieved 18 March 2013.
  78. ^ Page Module:Citation/CS1/styles.css has no content."Just enabled #SPDY for all http://WordPress.com/ -hosted sites". 2012-08-28. Retrieved 2012-08-28.
  79. ^ [1] DSM 5.0 beta
  80. ^ Page Module:Citation/CS1/styles.css has no content.John Graham-Cumming (2014-02-17). "Staying up to date with the latest protocols: SPDY/3.1 | CloudFlare Blog". Blog.cloudflare.com. Retrieved 2014-02-19.
  81. ^ Page Module:Citation/CS1/styles.css has no content.Justin Dorfman. "Now Serving: SPDY 3.1". blog.maxcdn.com. Retrieved 2014-05-20.
  82. ^ Page Module:Citation/CS1/styles.css has no content."Open sourcing our NGINX HTTP/2 + SPDY code". 2016-03-13. Retrieved 2016-08-05.
  83. ^ Page Module:Citation/CS1/styles.css has no content.Ghedini, Alessandro; Lalkaka, Rustam (26 September 2019). "HTTP/3: the past, the present, and the future". The Cloudflare Blog. Retrieved 16 January 2020.

Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.