SPDY explained

SPDY (pronounced "speedy") is an obsolete open-specification communication protocol developed for transporting web content. SPDY became the basis for HTTP/2 specification. However, HTTP/2 diverged from SPDY and eventually HTTP/2 subsumed all usecases of SPDY.[1] 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, although this depends on a combination of network and website deployment conditions.[2] [3] [4] The name "SPDY" is not an acronym.[5]

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.

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

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, Mozilla Firefox, Opera, Amazon Silk, Internet Explorer, and Safari 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 that support for SPDY would be withdrawn.[9] On May 15, 2015, HTTP/2 was officially ratified as .

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

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

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

Protocol versions

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

Design

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

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. 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

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

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

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.

Client (browser) support and usage

Server support and usage

, approximately 0.1% of all websites support SPDY,[44] in part due to transition to HTTP/2. In 2016, NGINX and Apache[45] were the major providers of SPDY traffic. In 2015, NGINX 1.9.5 dropped SPDY support in favor of HTTP/2.

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

A brief history of SPDY support amongst major web players:

Notes and References

  1. Web site: HTTP/2 Frequently Asked Questions. http2.github.io.
  2. Book: 10.1109/IFIPNetworking.2014.6857089. 2014 IFIP Networking Conference. 1–9. 2014. Elkhatib. Yehia. Tyson. Gareth. Welzl. Michael. 978-3-901882-58-6. 10.1.1.698.2343. 13841087.
  3. Web site: Podjarny. Guy. Not as SPDY as You Thought. 12 October 2012. dead. https://web.archive.org/web/20121012205813/http://www.guypo.com/technical/not-as-spdy-as-you-thought/. 12 October 2012.
  4. A deep analysis on future web technologies and protocols over broadband GEO satellite networks. International Journal of Satellite Communications and Networking. 2015-07-01. 1542-0981. 451–472. 10.1002/sat.1120. en. Ahmed. Abdelsalam. Nedo. Celandroni. Matteo. Collina. Haitham. Cruickshank. Gorry. Fairhurst. Erina. Ferro. Alberto. Gotta. Michele. Luglio. Cesare. Roseti. 33. 5.
  5. Web site: SPDY frequently asked questions. 2015-02-23. The Chromium Projects. We wanted a name that captures speed. SPDY, pronounced "SPeeDY", captures this and also shows how compression can help improve speed..
  6. Web site: Nottingham. Mark. First draft of HTTP/2. HTTP Working Group Mailing List. 2 December 2012.
  7. Web site: Fwd: [new-work] WG Review: Hypertext Transfer Protocol Bis (httpbis)].
  8. News: 2012-04-28. HTTPbis Working Group Start To Consider HTTP/2.0. InfoQ. 2012-08-09.
  9. Web site: Chris Bentzel. Bence Béky. amp. 9 February 2015. Hello HTTP/2, Goodbye SPDY.
  10. Web site: Béky, Bence. February 11, 2016. Transitioning from SPDY to HTTP/2. February 12, 2016.
  11. Web site: Marshall. Scott. 2019-01-25. Removing Legacy SPDY Protocol Support. 2019-03-07. WebKit.
  12. Web site: Transitioning from SPDY to HTTP/2. 2022-02-05. Chromium Blog. en.
  13. Web site: 1287132 - Disable SPDY 3.1. bugzilla.mozilla.org.
  14. https://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2 SPDY Protocol - Draft 2
  15. Web site: Module ngx_http_spdy_module. 2014-06-03. Nginx.org.
  16. Web site: 2013-10-03. Issue 303957 - chromium — Make Chrome support only SPDY/3 and above — An open-source project to help move the web forward. - Google Project Hosting. 2014-02-19.
  17. http://blog.litespeedtech.com/2013/06/20/openlitespeed-1-1-with-spdy/ OpenLiteSpeed 1.1 (With SPDY!)
  18. Web site: SPDY Protocol — Draft 3.1. 17 November 2013.
  19. http://blog.litespeedtech.com/2013/11/26/openlitespeed-1st-web-server-to-support-spdy3-1/ OpenLiteSpeed 1st Web Server to Support SPDY/3.1!
  20. http://nginx.com/news/nginx-announces-support-spdy31/ NGINX Announces Support for SPDY/3.1
  21. https://support.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-ltm-11-6-0.html F5 Bigip 11.6.0 Release Notes
  22. Web site: Upcoming SPDY/4 changes to bring it more in sync with the HTTP/2 draft. 27 February 2014.
  23. Web site: SPDY Protocol — Draft 3. 25 August 2012.
  24. //tools.ietf.org/agenda/82/slides/tls-3.pdf NPN protocol and explanation about its need to tunnel SPDY over HTTPS
  25. Web site: ImperialViolet - NPN and ALPN. 2021-06-08. www.imperialviolet.org.
  26. http://www.openssl.org/news/changelog.html Openssl 1.0.1 changelog
  27. https://technotes.googlecode.com/git/nextprotoneg.html TLS Next Protocol Negotiation. Section: Implementations
  28. https://src.chromium.org/viewvc/chrome/trunk/src/net/spdy/ Chromium SPDY client implementation
  29. https://www.chromium.org/spdy/spdy-proxy-examples Chromium: SPDY proxy examples
  30. http://peter.sh/experiments/chromium-command-line-switches/ List of Chromium Command Line Switches
  31. Web site: Hello HTTP/2, Goodbye SPDY . Chromium Blog . February 9, 2015 . 9 February 2015 . Bentzel, Chris . Béky, Bence .
  32. Web site: Google Groups. groups.google.com.
  33. Web site: Firefox 15 — Release Notes. 3 September 2012.
  34. Web site: Firefox Notes Desktop . 2014-02-04 . 2014-02-05.
  35. Web site: Firefox Beta Notes — Desktop . 2014-02-06 . 2014-02-07.
  36. Web site: HTTP/2 and SPDY indicator . Add-ons for Firefox . Mozilla . 2014-11-26 . 2015-02-12.
  37. Web site: Opera: Opera 12.10 Changelog. David Honneffer, Documentation Specialist.
  38. Web site: WebGL, SPDY/3, New Dev Tools, & More Confirmed For IE11 In Win 8.1. Microsoft News.
  39. Web site: IE11 Changes. Microsoft.
  40. Web site: Microsoft Releases Internet Explorer 11 for Windows 7. 2013-11-07.
  41. Web site: 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. 2014-02-19.
  42. Web site: HTTP/2: The Long-Awaited Sequel . Microsoft . October 8, 2014 . 8 October 2014 . Rob Trace . David Walp .
  43. Web site: What's New in Foundation Networking. Apple inc.. 2014-07-07.
  44. Web site: Usage of SPDY for websites. 2021-05-04. w3techs.com.
  45. Web site: Usage of web servers for websites. 2016-07-26. w3techs.com.
  46. http://groups.google.com/group/spdy-dev/browse_thread/thread/4c2396ecbc36b1c4 spdy-dev mailing list: SPDY on Google servers?
  47. http://www.eweek.com/c/a/Cloud-Computing/Google-Speeds-Up-WebPage-Downloads-with-SPDY-Protocol-240303/ Google Speeds Up Web-Page Downloads with SPDY Protocol - Cloud Computing - News & Reviews
  48. Web site: Research Blog: A 2x Faster Web. Research Blog.
  49. Web site: From Fast to SPDY — Velocity 2011. Ido Safruti. 2011-06-15.
  50. Web site: Google Groups.
  51. http://browserfame.com/527/twitter-spdy-support Twitter Adopts SPDY
  52. //wiki.eclipse.org/Jetty/Feature/SPDY Jetty Feature SPDY
  53. Web site: indutny/node-spdy · GitHub . Github.com . 2012-05-10.
  54. Web site: Fedor Indutny . What the $%@! is SPDY — blog.nodejitsu.com — scaling node.js applications one callback at a time . blog.nodejitsu.com . 2012-01-24 . 2012-05-10.
  55. Web site: mod-spdy — Apache SPDY module — Google Project Hosting . 2012-05-10.
  56. Web site: libspdy . daniel.haxx.se . 2011-10-18 . 2012-05-10.
  57. Web site: @DeviaVir It's going well ;) So far we're on schedule, should hopefully be available by the end of May. Twitter.
  58. Web site: mod_spdy — mod_spdy — Google Developers . 2012-05-10.
  59. http://www.f5.com/news-press-events/press/2012/20120508b.html F5 Helps Organizations Improve User Experience and Simplify Management with First Integrated SPDY Gateway | About F5 | F5 Networks
  60. Web site: Announcing SPDY draft 2 implementation in nginx . Nginx . 2012-06-15 . 2012-06-16.
  61. Web site: Beaver. Doug. HTTP2 Expression of Interest. W3C. 15 July 2012.
  62. News: Finley. Klint. Facebook Makes Itself a Bit More SPDY. Wired. 18 March 2013.
  63. http://www.synology.com/fr-fr/support/beta_dsm_5_0
  64. Web site: John Graham-Cumming . Staying up to date with the latest protocols: SPDY/3.1 | CloudFlare Blog . Blog.cloudflare.com . 2014-02-17. 2014-02-19.
  65. Web site: Justin Dorfman. Now Serving: SPDY 3.1 . blog.maxcdn.com . 2014-05-20.
  66. Web site: HTTP/2 Supported in Open Source NGINX 1.9.5 - NGINX. 22 September 2015.
  67. Web site: Open sourcing our NGINX HTTP/2 + SPDY code. 2016-08-05. 2016-03-13.
  68. Web site: Distribution of Web Servers among websites that use SPDY. 2021-05-04.
  69. Web site: Ghedini . Alessandro . Lalkaka . Rustam . HTTP/3: the past, the present, and the future . The Cloudflare Blog . 16 January 2020 . en . 26 September 2019.
  70. Web site: Just enabled #SPDY for all http://WordPress.com/ -hosted sites. |date=2012-08-28 |access-date=2012-08-28}} ] announced SPDY is included in the new DSM 5.0.[63]
    • In February 2014, CloudFlare using nginx announced automatic support for SPDY v3.1 for all customers with SSL/TLS certificates.[64]
    • In May 2014, MaxCDN using nginx announced support for SPDY v3.1 via customers' Pull Zone settings and their API.[65]
    • 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[66]
    • In May 2016, CloudFlare releases patches to Nginx web server, the patches supports HTTP/2 and SPDY simultaneously.[67]

    According to W3Techs,, most SPDY-enabled websites use nginx, with the LiteSpeed web server coming second.[68]

    See also

    External links

    ]

    .