SPDY

SPDY (pronounced speedy)[1] is a now-deprecated open-specification networking protocol that was 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][4] The name "SPDY" is a trademark[5] of Google and is not an acronym.[6]

Throughout the process, the core developers of SPDY have been involved in the development of HTTP/2, including both Mike Belshe and Roberto Peon. In February 2015, Google announced that following the recent final ratification of the HTTP/2 standard, support for SPDY would be deprecated, and that support for SPDY would be withdrawn.[7] Google removed SPDY support in Google Chrome 51. Mozilla removed it in Firefox 50.[8]

History

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

Implementations of SPDY exist in Chromium,[11] Mozilla Firefox,[12] Opera,[13] Amazon Silk, Internet Explorer,[14] and Safari,[15] with the implementations for Chromium and Firefox being open source software.

In February 2015, Google announced its plans to remove support for SPDY in favor of HTTP/2. 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/2 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.[16]

On February 11, 2016, Google announced that Chrome would no longer support SPDY and NPN after May 15, 2016, the anniversary of RFC 7540.[17]

Design

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

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.

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

Protocol support

For use within HTTPS, SPDY needs the TLS extension Next Protocol Negotiation (NPN),[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]

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

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.

Client (browser) support and usage

Server support and usage

As of July 2016, approximately 7.1% of all websites support SPDY.[55] Fielded versions of the two most popular web servers, NGINX and Apache,[56] are the major providers of SPDY traffic.[57] although the latest version of NGINX has now removed SPDY support.[58] This compares with an adoption rate of 8.1% for the newer HTTP/2 protocol, which as of 2016 had overtaken the adoption of SPDY.[59]

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

A brief history of SPDY support amongst major web players:

According to W3Techs, as of July 2016, most SPDY-enabled websites use nginx, with the LiteSpeed web server coming second.[57]

See also

References

  1. 1 2 3 4 5 "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. 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: 451–472. ISSN 1542-0981. doi:10.1002/sat.1120.
  5. "Permissions: Our trademarks". Google. Retrieved 2015-02-23.
  6. "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. Chris Bentzel & Bence Béky (9 February 2015). "Hello HTTP/2, Goodbye SPDY". Google.
  8. https://bugzilla.mozilla.org/show_bug.cgi?id=1287132
  9. "SPDY Protocol on IETF". Retrieved 2012-02-08.
  10. Nottingham, Mark. "First draft of HTTP/2". HTTP Working Group Mailing List. Retrieved 2 December 2012.
  11. "SPDY on Google servers?". Retrieved 2012-02-28.
  12. 1 2 "Mozilla Bug 528288 - Implement SPDY protocol".
  13. "Opera: Built-in support for the SPDY protocol". Retrieved 2012-11-06.
  14. "IE11 SPDY/3 confirmed". Retrieved 2013-06-25.
  15. "Apple — Press Info — Apple Announces OS X Yosemite". 2 June 2014. Retrieved 2014-06-02.
  16. http://http2.github.io/faq/#whats-the-relationship-with-spdy
  17. Béky, Bence (February 11, 2016). "Transitioning from SPDY to HTTP/2". Retrieved February 12, 2016.
  18. "A 2x Faster Web". Official Google Chromium Blog. 2009-11-11. Retrieved 2009-11-13.
  19. Iljitsch van Beijnum (2009-11-12). "SPDY: Google wants to speed up the web by ditching HTTP". Ars Technica. Retrieved 2009-11-13.
  20. 1 2 "SPDY Protocol — Draft 3". Retrieved 25 August 2012.
  21. Mirko Lindner (13 November 2009). "Google stellt HTTP-Alternative SPDY vor" (in German). Retrieved 2011-10-21.
  22. Nottingham, Mark. "What's next for HTTP". Retrieved 2012-03-31.
  23. "Fwd: [new-work] WG Review: Hypertext Transfer Protocol Bis (httpbis)".
  24. "HTTPbis Working Group Start To Consider HTTP/2.0". InfoQ. 2012-04-28. Retrieved 2012-08-09.
  25. NPN protocol and explanation about its need to tunnel SPDY over HTTPS.
  26. Openssl 1.0.1 changelog.
  27. TLS Next Protocol Negotiation. Section: Implementations.
  28. Adam Langley. "ImperialViolet".
  29. SPDY Protocol - Draft 2: "Currently, the only valid string is "spdy/2" (spdy/1 isn't implemented anywhere anymore)".
  30. "Module ngx_http_spdy_module". Nginx.org. Retrieved 2014-06-03.
  31. 1 2 "Firefox Beta Notes — Desktop". 2014-02-06. Retrieved 2014-02-07.
  32. "Issue 303957 - chromium — Make Chrome support only SPDY/3 and above — An open-source project to help move the web forward. - Google Project Hosting". Code.google.com. 2013-10-03. Retrieved 2014-02-19.
  33. 1 2 3 OpenLiteSpeed 1.1 (With SPDY!) Retrieved 2013-08-12.
  34. 1 2 "Firefox 15 — Release Notes". Retrieved 3 September 2012.
  35. "SPDY Protocol — Draft 3.1". Retrieved 17 November 2013.
  36. 1 2 "Firefox Notes Desktop". 2014-02-04. Retrieved 2014-02-05.
  37. 1 2 OpenLiteSpeed 1st Web Server to Support SPDY/3.1! Retrieved 2014-1-10.
  38. NGINX Announces Support for SPDY/3.1 Retrieved 2014-02-04.
  39. F5 Bigip 11.6.0 Release Notes Retrieved 2015-03-10.
  40. "Upcoming SPDY/4 changes to bring it more in sync with the HTTP/2 draft". Retrieved 27 February 2014.
  41. Chromium SPDY client implementation.
  42. Chromium: SPDY proxy examples.
  43. List of Chromium Command Line Switches.
  44. Bentzel, Chris; Béky, Bence (February 9, 2015). "Hello HTTP/2, Goodbye SPDY". Chromium Blog. Retrieved 9 February 2015.
  45. https://groups.google.com/forum/#!topic/mod-spdy-discuss/FPEj0zG5I0Y
  46. "HTTP/2 and SPDY indicator". Add-ons for Firefox. Mozilla. 2014-11-26. Retrieved 2015-02-12.
  47. David Honneffer, Documentation Specialist. "Opera: Opera 12.10 Changelog".
  48. "WebGL, SPDY/3, New Dev Tools, & More Confirmed For IE11 In Win 8.1". Microsoft News.
  49. "IE11 Changes". Microsoft.
  50. "Microsoft Releases Internet Explorer 11 for Windows 7".
  51. "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. Retrieved 2014-02-19.
  52. Rob Trace; David Walp (October 8, 2014). "HTTP/2: The Long-Awaited Sequel". Microsoft. Retrieved 8 October 2014.
  53. Ryan Paul (28 September 2011). "Amazon's Silk Web browser adds new twist to old idea". Retrieved 2011-10-21.
  54. "What's New in Foundation Networking" (PDF). Apple inc. Retrieved 2014-07-07.
  55. "Usage of SPDY for websites". w3techs.com. Retrieved 2016-07-26.
  56. "Usage of web servers for websites". w3techs.com. Retrieved 2016-07-26.
  57. 1 2 "Distribution of Web Servers among websites that use SPDY". Retrieved 2016-07-26.
  58. 1 2 https://www.nginx.com/blog/nginx-1-9-5/
  59. "Usage of HTTP/2 for websites". w3techs.com. Retrieved 2016-07-26.
  60. spdy-dev mailing list: SPDY on Google servers?.
  61. Google Speeds Up Web-Page Downloads with SPDY Protocol - Cloud Computing - News & Reviews. eWeek.com (2011-06-20). Retrieved on 2013-11-21.
  62. "Research Blog: A 2x Faster Web". Research Blog.
  63. Ido Safruti. "From Fast to SPDY — Velocity 2011".
  64. "Google Groups".
  65. Twitter Adopts SPDY.
  66. Jetty Feature SPDY.
  67. "indutny/node-spdy · GitHub". Github.com. Retrieved 2012-05-10.
  68. 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.
  69. "mod-spdy — Apache SPDY module — Google Project Hosting". Code.google.com. Retrieved 2012-05-10.
  70. "libspdy". daniel.haxx.se. 2011-10-18. Retrieved 2012-05-10.
  71. "Welcome to Twitter — Login or Sign up".
  72. "mod_spdy — mod_spdy — Google Developers". Google. Retrieved 2012-05-10.
  73. F5 Helps Organizations Improve User Experience and Simplify Management with First Integrated SPDY Gateway | About F5 | F5 Networks. F5.com (2012-05-08). Retrieved on 2013-11-21.
  74. "Announcing SPDY draft 2 implementation in nginx". Nginx. 2012-06-15. Retrieved 2012-06-16.
  75. Beaver, Doug. "HTTP2 Expression of Interest". W3C. Retrieved 15 July 2012.
  76. Finley, Klint. "Facebook Makes Itself a Bit More SPDY". Wired. Retrieved 18 March 2013.
  77. "Just enabled #SPDY for all http://WordPress.com/ -hosted sites.". 2012-08-28. Retrieved 2012-08-28. External link in |title= (help)
  78. DSM 5.0 beta
  79. John Graham-Cumming. "Staying up to date with the latest protocols: SPDY/3.1 | CloudFlare Blog". Blog.cloudflare.com. Retrieved 2014-02-19.
  80. Justin Dorfman. "Now Serving: SPDY 3.1". blog.maxcdn.com. Retrieved 2014-05-20.
  81. Support of SPDY by Yahoo on www.yahoo.com
  82. "Open sourcing our NGINX HTTP/2 + SPDY code". 2016-03-13. Retrieved 2016-08-05.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.