SPDY

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

SPDY(「スピーディー」と発音)[2]は、Webコンテンツを転送するために開発された廃止された オープン仕様の 通信プロトコルです[2] SPDYがHTTP / 2仕様の基礎になりました。ただし、HTTP / 2はSPDYから分岐し、最終的にHTTP / 2はSPDYのすべてのユースケースを包含しました。[3] HTTP / 2が標準として承認された後、Google、Mozilla、Appleなどの主要な実装者は、HTTP / 2を支持してSPDYを非推奨にしました。2021年以降、SPDYをサポートする最新のブラウザーはありません。

Googleは2009年後半にSPDYを発表し、2010年に導入しました。SPDYはHTTPトラフィックを操作し、特にWebページの読み込み遅延を減らしてWebセキュリティを向上させることを目的としていますSPDYは、圧縮多重化、および優先順位付け[2]によって遅延の削減を実現しますが、これはネットワークとWebサイトの展開条件の組み合わせによって異なります。[4] [5] [6]「SPDY」という名前はGoogleの商標[7]であり、頭字語ではありません。[8]

歴史

HTTP / 2が最初に議論されたのは、SPDYが実装者(Mozillaやnginxなど)で注目を集めており、HTTP /1.xよりも大幅に改善されていることが明らかになったときです。提案と選択プロセスを求めた後、HTTP / 2の基盤としてSPDYが選択されました。それ以来、ワーキンググループでの議論と実装者からのフィードバックに基づいて、多くの変更が行われました。[3]

2012年7月の時点で、SPDYを開発しているグループは、標準化に向けて取り組んでいると公に述べています(インターネットドラフトとして入手可能)。[9] HTTP / 2の最初のドラフトでは、仕様のドラフトと編集の作業ベースとしてSPDYを使用していました。[10] HTTPbisのIETFワーキンググループは、 HTTP / 2のドラフトをリリースしました[11] SPDY(draft-mbelshe-httpbis-spdy-00)が開始点として選択されました。[12] [13]

プロセス全体を通じて、SPDYのコア開発者は、MikeBelsheとRobertoPeonの両方を含むHTTP / 2の開発に関与してきました。

Chromium[14] Mozilla Firefox[15] Opera[16] Amazon SilkInternet Explorer[17]Safari [18]は、当時SPDYのサポートを表明していました。

2015年2月、Googleは、HTTP / 2標準の承認に伴い、SPDYのサポートが廃止され、SPDYのサポートが廃止されることを発表しました。[19] 2015年5月15日、HTTP / 2はRFC7540として正式に承認されまし 

2016年2月11日、Googleは、 HTTP / 2を標準化したRFC7540の1周年にあたる2016年5月15日以降、ChromeがSPDYをサポートしないことを発表しまし[20] 

2019年1月25日、AppleはSPDYがHTTP / 2を優先して非推奨になり、将来のリリースで削除されることを発表しました。[21]

Googleは2016年にリリースされたGoogleChrome51でSPDYサポートを削除しました。 [22] MozillaはFirefox50でSPDYサポートを削除しました[23] AppleはmacOS10.14.4とiOS12.2でこのテクノロジーを廃止しまし[21]

プロトコルバージョン

SPDYはバージョン管理されたプロトコルです。SPDY制御フレームには、現在のセッションで使用されているプロトコルのバージョンを示す15個の専用ビットが含まれています。[24]

  • バージョン1:SPDYプロトコルのバージョン1は使用されなくなりました。[24]
  • バージョン2:間もなく廃止されます。Nginxは、1.5.10より前のバージョンでSPDY / 2をサポートします。[25] Firefox28および最近のバージョンのChromeはそれをサポートしていません。[26] [27] OpenLiteSpeed1.1以降はSPDY / 2をサポートしています。[28]
  • バージョン3:SPDY v3は、フロー制御のサポートを導入し、圧縮ディクショナリを更新し、特定のフレームから無駄なスペースを削除し、その他のマイナーなバグ修正を行いました。[29] FirefoxはFirefox15でSPDYv3をサポートします。[30] OpenLiteSpeed1.1以降はSPDY / 3をサポートします。[28]
  • バージョン3.1:SPDY v3.1は、セッション層フロー制御のサポートを導入し、CREDENTIALSフレーム(および関連するエラーコード)を削除しました。[31] Firefox27はSPDY3.1のサポートを追加しました。[32] OpenLiteSpeed 1.2.7では、SPDY /3.1のサポートが導入されています。[33] Nginx1.5.10はSPDY / 3.1をサポートしています。[34] F5 BIGIP11.6はSPDY / 3.1をサポートしています。[35]
  • バージョン4.0:SPDY v4alpha3はHTTP / 2ドラフトとより緊密に連携しています。HTTP / 2ドラフトと統合された新しいストリームフロー制御とエラーコードがあります。[36]

デザイン

SPDYの目標は、Webページの読み込み時間を短縮することです。[37]これは、クライアントごとに1つの接続のみが必要になるように、Webページのサブリソースの転送に優先順位を付けて多重化することによって実現されます。[2] [38] TLS暗号化はSPDY実装でほぼ遍在しており、送信ヘッダーは設計によってgzip圧縮またはDEFLATE圧縮されています[29](ヘッダーが人間が読めるテキストとして送信されるHTTPとは対照的)。さらに、サーバーは、Webページの各リソースに対する個別の要求を待つ代わりに、コンテンツをヒントしたり、プッシュしたりする場合があります。[39]

SPDYでは、セキュリティのためにSSL / TLS(TLS拡張子はALPN )を使用する必要がありますが、プレーンTCPでの操作もサポートしていますSSLの要件は、セキュリティのためであり、通信がプロキシを介して行われる場合の非互換性を回避するためです。

HTTPとの関係

SPDYはHTTPを置き換えません。HTTPリクエストとレスポンスがネットワーク経由で送信される方法を変更します[2]これは、SPDY互換の変換レイヤーが配置されていれば、既存のすべてのサーバー側アプリケーションを変更せずに使用できることを意味します。

SPDYは、事実上、HTTPおよびHTTPSプロトコルのトンネルです。SPDYを介して送信される場合、HTTPリクエストは処理、トークン化、簡略化、および圧縮されます。たとえば、各SPDYエンドポイントは、過去のリクエストで送信されたヘッダーを追跡し、変更されていないヘッダーの再送信を回避できます。送信する必要があるものは圧縮されています。

プロトコルサポート

HTTPS内で使用するには、SPDYにTLS拡張Next Protocol Negotiation(NPN)[40]またはApplication-Layer Protocol Negotiation(ALPN)[41]が必要であるため、ブラウザーとサーバーのサポートはHTTPSライブラリに依存します。

OpenSSL1.0.1以降ではNPNが導入されています。[42] NPNサポートを追加するパッチもNSSおよびTLSLite用に作成されています。[43]

MicrosoftのSecuritySupport Provider Interface(SSPI)は、TLS実装にNPN拡張機能を実装していません。これにより、SPDYが最新の.NETFrameworkバージョンに含まれなくなりました。SPDY仕様は改良されており、HTTP / 2にはSPDY実装が含まれると予想されるため、HTTP / 2が完成した後にMicrosoftがサポートをリリースすることが期待できます。

クライアント(ブラウザ)のサポートと使用法

  • Google Chrome / Chromium[44] [45] ChromeのSPDYセッションは、 URIを介して検査できますchrome://net-internals/#events&q=type:SPDY_SESSION%20is:activeGoogle Chrome()用のコマンドラインスイッチがあり、SPDYを介したWebSocketの初期の実験的な実装を可能にします。[46] SPDYプロトコル機能は、ローカルページで[ SPDY / 4を有効にする]設定を切り替えることで(非)アクティブ化できます。Chromiumは、 HTTP / 2ALPNを優先して、2016年の初めにSPDYとNext ProtocolNegotiationのサポートを削除する予定です。[47]--enable-websocket-over-spdychrome://flags2015年2月のバージョン40.x以降、ChromeはすでにSPDY / 3のサポートを終了しており、今後はSPDY /3.1のみをサポートします。これにより、GoogleChromeからアクセスしたときにApacheWebサイトがSPDYサポートなしになりました。[48]
  • Firefoxはバージョン11以降のSPDY2をサポートし、13以降はデフォルトで有効になっています。SeaMonkeyバージョン2.8以降も。)SPDYプロトコル機能は、のnetwork.http.spdy.enabled変数を切り替えることで(非)アクティブ化できますabout:config[15] Firefox15はSPDY3のサポートを追加しました。[30] Firefox27はSPDY3.1のサポートを追加しました。[32] Firefox28はSPDY2のサポートを削除しました。[26] about:networking(またはHTTP / 2およびSPDYインジケーターアドオン)[49]は、WebサイトがSPDYを使用しているかどうかを示します。
  • Operaブラウザはバージョン12.10からSPDYのサポートを追加しました。[50]
  • Internet Explorer 11は、SPDYバージョン3 [51] [52]のサポートを追加しましたが、Windows7バージョンのサポートは追加しませんでした。[53] Windows8.1およびInternetExplorer 11の一部のユーザーが経験する問題は、最初の読み込み時にGoogleが「ページが見つかりません」と表示しますが、再読み込み時に問題がないことです。これに対する1つの修正は、[インターネットオプション]> [詳細設定]でSPDY / 3を無効にすることです。[54]バージョン11以降、IEはHTTP / 2を採用するため、SPDYのサポートを終了します[55]
  • Kindle Fire用のAmazonのSilkブラウザーは、SPDYプロトコルを使用して、Webページレンダリング用のEC2サービスと通信します。[56]
  • OS X10.10およびiOS8Safari8およびサードパーティアプリケーションは、SPDY 2、3、および3.1のサポートを追加します。[57]

サーバーのサポートと使用法

2021年5月の時点で、すべてのWebサイトの約0.1%がSPDYをサポートしています[58]。これは一部HTTP / 2への移行によるものです。2016年には、NGINXとApache [59]がSPDYトラフィックの主要プロバイダーでした。[60] 2015年、NGINX1.9.5はHTTP / 2を優先してSPDYサポートを廃止しました。[61]

一部のGoogleサービス(Google検索Gmail、その他のSSL対応サービスなど)は、利用可能な場合にSPDYを使用します。[62] Googleの広告もSPDY対応サーバーから配信されます。[63]

主要なWebプレーヤー間のSPDYサポートの簡単な歴史:

  • 2009年11月、Googleはウェブの速度を上げるための内部プロジェクトとしてSPDYを発表しました。[64]
  • 2010年9月、GoogleはすべてのプラットフォームのChrome6でSPDYをリリースしました。[65]
  • 2011年1月、GoogleはすべてのGoogleサービスにSPDYを導入しました。[66]
  • 2012年3月、Twitterはサーバー上でSPDYを有効にし、当時、SPDYを展開することで知られる2番目に大きなサイトになりました。[67]
  • 2012年3月、オープンソースのJetty Webサーバーはバージョン7.6.2および8.1.2でのSPDYのサポートを発表しました[68]が、 Node.js含む他のオープンソースプロジェクトはSPDYのサポートの実装に取り​​組んでいました[69] [70 ] Apache(mod_spdy)、[71] curl[72]およびNginx[73]
  • 2012年4月、GoogleはApacheサーバー用のSPDYパッケージの提供を開始しました。これにより、一部の小規模なWebサイトがSPDYサポートを提供するようになりました。[74]
  • 2012年5月、 F5ネットワークはBIG-IPアプリケーション配信コントローラーでのSPDYのサポートを発表しました。[75]
  • 2012年6月、NginxオープンソースWebサーバーはSPDYのサポートを発表しました。[76]
  • 2012年7月、 FacebookはSPDYの実装計画を発表しました。[77] 2013年3月までに、SPDYはいくつかのパブリックWebサーバーによって実装されました。[78]
  • 2012年8月、 WordPress.comは、ホストされているすべてのブログでSPDY(Nginxを使用)のサポートを発表しました。[79]
  • 2013年6月、LiteSpeed Technologiesは、オープンソースのHTTPサーバーであるOpenLiteSpeedでのSPDY / 2およびSPDY / 3のサポートを発表しました。[28] SPDY /3.1のサポートは2013年11月に発表されました。[33]
  • 2014年1月、SynologyはSPDYが新しいDSM5.0に含まれることを発表しました。[80]
  • 2014年2月、 nginxを使用するCloudFlareは、SSL / TLS証明書を使用するすべてのお客様に対するSPDYv3.1の自動サポートを発表しました。[81]
  • 2014年5月、nginxを使用するMaxCDNは、お客様のプルゾーン設定とAPIを介したSPDYv3.1のサポートを発表しました。[82]
  • 2014年10月、YahooはYahooホームページでSPDYのサポートを示しています— www.yahoo.com
  • 2015年9月、最新バージョンのNginx WebサーバーはSPDYサポートを廃止し、HTTP / 2を採用しました[61]。
  • 2016年5月、CloudFlareはパッチをNginx Webサーバーにリリースし、パッチはHTTP / 2とSPDYを同時にサポートします。[83]

W3Techsによると、2021年5月の時点で、ほとんどのSPDY対応Webサイトはnginxを使用しており、LiteSpeedWebサーバーが2番目になっています。[60]

も参照してください

参考文献

  1. ^ W. Richard Stevens、 TCP / IP Illustrated、Volume 1:The Protocols、Addison Wesley、1994、ISBN0-201-63346-9。
  2. ^ a b c d e "SPDY:より高速なWebのための実験的なプロトコル"Chromium開発者向けドキュメント2009年11月13日取得
  3. ^ a b "HTTP / 2よくある質問"http2.github.io
  4. ^ Elkhatib、Yehia; タイソン、ガレス; ヴェルツル、マイケル(2014)。2014IFIPネットワーキング会議pp。1–9。CiteSeerX10.1.1.698.2343_ 土井10.1109 /IFIPNetworking.2014.6857089ISBN  978-3-901882-58-6S2CID13841087 _
  5. ^ Podjarny、ガイ。「思ったほどSPDYではない」2012年10月12日にオリジナルからアーカイブされました2012年10月12日取得
  6. ^ アブデルサラム、アーメド; セランドロニ、ネド; コリーナ、マッテオ; Cruickshank、Haitham; フェアハースト、ゴーリー; フェロ、エリナ; お奨め、アルベルト; ルグリオ、ミケーレ; ロゼティ、チェザーレ(2015-07-01)。「ブロードバンドGEO衛星ネットワークを介した将来のWebテクノロジーとプロトコルに関する詳細な分析」。衛星通信とネットワーキングの国際ジャーナル33(5):451–472。土井10.1002 /sat.1120ISSN1542-0981_ 
  7. ^ 「許可:私達の商標」Google 2015年2月23日取得
  8. ^ 「SPDYのよくある質問」Chromiumプロジェクト2015年2月23日取得スピードを捉えた名前が欲しかった。「SPeeDY」と発音されるSPDYは、これをキャプチャし、圧縮が速度の向上にどのように役立つかを示します。
  9. ^ 「IETFのSPDYプロトコル」2012年2月8日取得
  10. ^ ノッティンガム、マーク。「HTTP / 2の最初のドラフト」HTTPワーキンググループメーリングリスト2012年12月2日取得
  11. ^ ノッティンガム、マーク。「HTTPの次は」2012年3月31日取得
  12. ^ "Fwd:[new-work] WG Review:Hypertext Transfer Protocol Bis(httpbis)"
  13. ^ 「HTTPbisワーキンググループはHTTP / 2.0を検討し始めました」InfoQ2012-04-28 2012年8月9日取得
  14. ^ 「Googleサーバー上のSPDY?」2012年2月28日取得
  15. ^ a b "Mozilla Bug528288-SPDYプロトコルを実装する"
  16. ^ 「Opera:SPDYプロトコルの組み込みサポート」2012年11月6日取得
  17. ^ 「IE11SPDY / 3が確認されました」2013-06-25 2013年6月25日取得
  18. ^ 「Apple—プレス情報—AppleがOSXYosemiteを発表」2014年6月2日2014年6月2日取得
  19. ^ Chris Bentzel&BenceBéky(2015年2月9日)。「こんにちはHTTP / 2、さようならSPDY」
  20. ^ Béky、Bence(2016年2月11日)。「SPDYからHTTP / 2への移行」2016年2月12日取得
  21. ^ a b マーシャル、スコット(2019-01-25)。「レガシーSPDYプロトコルサポートの削除」WebKit 2019年3月7日取得
  22. ^ 「SPDYからHTTP / 2への移行」Chromiumブログ2022-02-05を取得
  23. ^ "1287132-SPDY3.1を無効にする"bugzilla.mozilla.org
  24. ^ a b SPDYプロトコル-ドラフト2:「現在、有効な文字列は「spdy / 2」のみです(spdy / 1はもうどこにも実装されていません)」。
  25. ^ 「モジュールngx_http_spdy_module」Nginx.org 2014年6月3日取得
  26. ^ a b 「Firefoxベータノート—デスクトップ」2014-02-06 2014年2月7日取得
  27. ^ 「問題303957-クロム—ChromeがSPDY / 3以降のみをサポートするようにする—Webを前進させるのに役立つオープンソースプロジェクト。-Googleプロジェクトホスティング」2013-10-03 2014年2月19日取得
  28. ^ a b c OpenLiteSpeed 1.1(SPDY付き!) 2013年8月12日取得。
  29. ^ a b "SPDYプロトコル—ドラフト3" 2012年8月25日取得
  30. ^ a b "Firefox 15 —リリースノート" 2012年9月3日取得
  31. ^ 「SPDYプロトコル—ドラフト3.1」2013年11月17日取得
  32. ^ a b "FirefoxNotesデスクトップ"2014-02-04 2014年2月5日取得
  33. ^ a b SPDY /3.1をサポートするOpenLiteSpeedの最初のWebサーバー!2014年1月10日取得。
  34. ^ NGINXがSPDY / 3.1のサポートを発表2014-02-04を取得。
  35. ^ F5 Bigip11.6.0リリースノート2015年3月10日取得。
  36. ^ 「今後のSPDY / 4の変更により、HTTP / 2ドラフトとの同期が強化されます」2014年2月27日取得
  37. ^ 「2倍速いウェブ」GoogleChromiumの公式ブログ。2009-11-11 2009年11月13日取得
  38. ^ Iljitsch van Beijnum(2009-11-12)。「SPDY:Googleは、HTTPを廃止することでWebを高速化したいと考えています」ArsTechnica 2009年11月13日取得
  39. ^ Mirko Lindner(2009年11月13日)。「GooglestelltHTTP-Alternative SPDY vor」(ドイツ語)2011年10月21日取得
  40. ^ NPNプロトコルとHTTPSを介してSPDYをトンネリングする必要性についての説明
  41. ^ 「ImperialViolet-NPNおよびALPN」www.imperialviolet.org 2021-06-08を取得
  42. ^ Openssl1.0.1変更ログ
  43. ^ TLS次のプロトコルネゴシエーション。セクション: WaybackMachineで2012年7月30日にアーカイブさた実装。
  44. ^ ChromiumSPDYクライアントの実装
  45. ^ Chromium:SPDYプロキシの例
  46. ^ Chromiumコマンドラインスイッチのリスト
  47. ^ ベンツェル、クリス; ベッキー、ベンス(2015年2月9日)。「こんにちはHTTP / 2、さようならSPDY」Chromiumブログ2015年2月9日取得
  48. ^ 「Googleグループ」groups.google.com
  49. ^ 「HTTP / 2およびSPDYインジケーター」Firefox用のアドオンMozilla。2014-11-26 2015年2月12日取得
  50. ^ David Honneffer、ドキュメントスペシャリスト。「Opera:Opera12.10変更ログ」
  51. ^ 「WebGL、SPDY / 3、新しい開発ツールなど、Win8.1のIE11で確認済み」マイクロソフトニュース。
  52. ^ 「IE11の変更」マイクロソフト。
  53. ^ 「MicrosoftはWindows7用のInternetExplorer11をリリースします」2013-11-07。
  54. ^ 「GoogleはWindows8.1のWebプロキシを介してIE11に初めてロードしませんか?SPDYサポートをオフにします。|怒っている技術者」Angrytechnician.wordpress.com。2014-01-16 2014年2月19日取得
  55. ^ ロブトレース; デビッドウォルプ(2014年10月8日)。「HTTP / 2:待望の続編」Microsoft 2014年10月8日取得
  56. ^ ライアンポール(2011年9月28日)。「AmazonのSilkWebブラウザーは、古いアイデアに新しいひねりを加えています」2011年10月21日取得
  57. ^ 「FoundationNetworkingの新機能」(PDF)アップル株式会社 2014年7月7日取得
  58. ^ 「ウェブサイトのためのSPDYの使用」w3techs.com 2021-05-04を取得
  59. ^ 「ウェブサイトのためのウェブサーバーの使用」w3techs.com 2016年7月26日取得
  60. ^ a b "SPDYを使用するWebサイト間のWebサーバーの分散" 2021-05-04を取得{{cite web}}: CS1 maint: url-status (link)
  61. ^ a b "オープンソースNGINX1.9.5-NGINXでサポートされるHTTP / 2"2015年9月22日。
  62. ^ spdy-devメーリングリスト:Googleサーバー上のSPDY?
  63. ^ GoogleはSPDYプロトコルでWebページのダウンロードを高速化します-クラウドコンピューティング-ニュースとレビューeWeek.com(2011-06-20)。2013年11月21日に取得。
  64. ^ 「研究ブログ:2倍速いウェブ」リサーチブログ
  65. ^ Ido Safruti(2011-06-15)。「FastからSPDYへ— Velocity2011」
  66. ^ 「Googleグループ」
  67. ^ TwitterはSPDYを採用しています。
  68. ^ 桟橋機能SPDY
  69. ^ "indutny / node-spdy・GitHub"Github.com 2012年5月10日取得
  70. ^ Fedor Indutny(2012-01-24)。「$%@!とはSPDY — blog.nodejitsu.com —node.jsアプリケーションを一度に1つのコールバックにスケーリングすること」blog.nodejitsu.com 2012年5月10日取得
  71. ^ "mod-spdy — Apache SPDYモジュール—Googleプロジェクトホスティング" 2012年5月10日取得
  72. ^ 「libspdy」daniel.haxx.se。2011-10-18 2012年5月10日取得
  73. ^ 「Twitterへようこそ—ログインまたはサインアップ」
  74. ^ "mod_spdy — mod_spdy — GoogleDevelopers" 2012年5月10日取得
  75. ^ F5は、組織が最初の統合SPDYゲートウェイでユーザーエクスペリエンスを改善し、管理を簡素化するのに役立ちます| F5について| ウェイバックマシンで2012年6月11日にアーカイブされたF5ネットワークF5.com(2012-05-08)。2013年11月21日に取得。
  76. ^ 「nginxでのSPDYドラフト2の実装の発表」Nginx。2012-06-15 2012年6月16日取得
  77. ^ ビーバー、ダグ。「HTTP2の関心のある表現」W3C 2012年7月15日取得
  78. ^ フィンリー、クリントン。「Facebookはそれ自体をもう少しSPDYにします」有線2013年3月18日取得
  79. ^ 「すべてのhttp://WordPress.com/でホストされているサイトで#SPDYを有効にしただけです」2012-08-28 2012年8月28日取得 {{cite web}}:(ヘルプ外部リンク|title=
  80. ^ [1] DSM5.0ベータ版
  81. ^ ジョングラハムカミング(2014-02-17)。「最新のプロトコルを最新に保つ:SPDY / 3.1 | CloudFlareブログ」Blog.cloudflare.com 2014年2月19日取得
  82. ^ ジャスティンドーフマン。「NowServing:SPDY3.1」blog.maxcdn.com 2014年5月20日取得
  83. ^ 「NGINXHTTP / 2 + SPDYコードのオープンソーシング」2016-03-13 2016年8月5日取得
  84. ^ Ghedini、Alessandro; ラルカカ、ルスタム(2019年9月26日)。「HTTP / 3:過去、現在、そして未来」Cloudflareブログ2020年1月16日取得

外部リンク