コンテンツにスキップ

HTTP/2

出典: フリー百科事典『ウィキペディア(Wikipedia)』
HTTP > HTTP/2
HTTP/2
通信プロトコル
開発者 IETF
導入 2015年5月14日 (9年前) (2015-05-14)
派生元 SPDY
派生先 HTTP/3
OSI階層 アプリケーション層
RFC RFC 9113

HTTP/2 (Hypertext Transfer Protocol version 2) は、World Wide Webで用いられているHypertext Transfer Protocolのバージョンの一つである。

HTTP/2はIETFのHypertext Transfer Protocol Bis (httpbis)ワーキンググループにおいて制定され[1]2015年2月17日に正式な仕様として承認され[2]、2015年5月に RFC 7540 として文書化された。HTTP/2はHTTP/1.1が1999年6月RFC 2616 として規定されて以来16年ぶりのバージョンアップである。

2022年、内容を更新する RFC 9113 が公開された。

プロトコル概要

[編集]

HTTP/2の目標はHTTP/1.1のトランザクション・セマンティクスとの完全な後方互換性を維持したまま非同期な接続の多重化、ヘッダ圧縮、リクエストとレスポンスのパイプライン化を実現することである。Googleによって立ち上げられ[3]、全ての主要なウェブブラウザが対応しているHTTP互換のプロトコルSPDYの人気が高まっていることに対応するために開発された[4]

高速化技術

[編集]

下記の技術により従来より高速の通信を実現している。

  • HTTPヘッダの圧縮。(HPACKで圧縮し[5]、二度目以降の通信は差分のみ送信する)
  • HTTP/2サーバープッシュ通信。
  • HTTPパイプライン
  • HoL (Head-of-Line) ブロッキング問題(HTTP/1.1で発生していた)の解消。
  • 一つのTCPソケット上に複数のリクエストが発生した時に最適に通信を行う。

対応状況

[編集]

ウェブブラウザ

[編集]

下記ウェブブラウザが対応している。ただし、全てHTTP/2 over TLSのみである。

サーバ

[編集]

その他

[編集]

経緯

[編集]

httpbisワーキンググループはGoogleのSPDYプロトコル、(SPDYを基にした)マイクロソフトHTTP Speed+Mobility[3]、Network-Friendly HTTP Upgradeを検討した[18]。2012年7月にFacebookはそれぞれの提案にフィードバックを行い、HTTP/2はSPDYを基にすることを推奨した[19]。SPDYをそのままコピーしたものを基にしたHTTP/2の最初のドラフトが2012年11月に発行された[20]

これらのプロトコルにおけるアーキテクチャ上の提案の多くは以前にW3CのHTTP-NGワーキンググループで調査済みであった。HTTP-NGプロジェクトの活動は1998年に休止された[21]

開発マイルストーン

[編集]

IETFのHypertext Transfer Protocol Bis (httpbis) ワーキンググループによる[1]

状態 マイルストーン
完了 最初のHTTP/1.1改訂版インターネットドラフト
完了 最初のHTTPセキュリティプロパティインターネットドラフト
完了 HTTP/2.0のための提案の呼びかけ
完了 ワーキンググループによるHTTP/1.1のための最終案内 (Last Call)
完了 draft-mbelshe-httpbis-spdy-00を基にしたHTTP/2.0の最初のワーキンググループドラフト
実施/延期 ワーキンググループによるHTTPセキュリティプロパティのための最終案内 (Last Call)
完了 標準化提案 (Proposed Standard) として検討されるためにIESGにHTTP/1.1改訂版を提出
完了 ワーキンググループによるHTTP/2のための最終案内 (Last Call)
2014年11月 標準化提案 (Proposed Standard) として検討されるためにIESGにHTTP/2を提出
2015年2月17日 IETFにて仕様として承認され、RFCとしての文章化へと進む[2]
2015年5月14日 RFC 7540として文書化[22]

名称

[編集]

ワーキンググループにおいて当初はHTTP 2.0という名称で制定作業を進めていたが、後にHTTP/2と置き換えることとなった[23]。また、GoogleはSPDY/4という呼び方もしていた。

出典

[編集]
  1. ^ a b Hypertext Transfer Protocol Bis (httpbis) - Charter”. IETF (2012年). 2013年9月4日閲覧。
  2. ^ a b HTTP/2 Approved | IETF Blog
  3. ^ a b Sebastian Anthony (2012年3月28日). “S&M vs. SPDY: Microsoft and Google battle over the future of HTTP 2.0”. ExtremeTech. 2013年9月4日閲覧。
  4. ^ Jerome Louvel (2011年10月6日). “Can the rise of SPDY threaten HTTP?”. Restlet. 2013年9月4日閲覧。
  5. ^ 従来はGZIPで圧縮していたが、CRIME攻撃の出現によりHPACKに切り替えられた。
  6. ^ Issue 230124 - chromium - Support SPDY/4 - An open-source project to help move the web forward. - Google Project Hosting
  7. ^ HTTP/2 - The Chromium Projects
  8. ^ Firefox 34 サイト互換性情報 - Mozilla | MDN
  9. ^ Internet Explorer 互換性クックブック > ブラウザーの機能と互換性の変更点 > SPDY/3 から HTTP/2 への置き換え (Windows)”. MSDNライブラリ. 2017年4月24日閲覧。
  10. ^ HTTP/2: The Long-Awaited Sequel”. MSDN IEBlog. Microsoft Corporation (October 8, 2014). 2015年5月19日閲覧。
  11. ^ OpenLiteSpeed 1.4.5 change log”. LiteSpeed Technologies, Inc. (2015年2月26日). 2015年5月19日閲覧。
  12. ^ LSWS 5.0 Is Out – Support for HTTP/2, ESI, LiteMage Cache” (April 17, 2015). 2015年5月19日閲覧。
  13. ^ Amazon CloudFront now supports HTTP/2”. 2018年1月13日閲覧。
  14. ^ Module ngx_http_v2_module”. nginx.org (2015年9月22日). 2015年9月24日閲覧。
  15. ^ ChangeLog for 2.4”. apache.org (2015年10月13日). 2015年10月13日閲覧。
  16. ^ H2O - the optimized HTTP/2 server”. h2o.examp1e.net. 2015年12月16日閲覧。
  17. ^ 1.4.56 - Lighttpd - fly light”. Lighttpd (2020年11月29日). 2022年6月19日閲覧。 “Important changes TTP/2, TLS library options, brotli, bugfixes”
  18. ^ W. Tarreau (2012年3月29日). “draft-tarreau-httpbis-network-friendly-00 - Proposal for a Network-Friendly HTTP Upgrade”. 2013年9月4日閲覧。
  19. ^ Doug Beaver (2012年7月15日). “HTTP2 Expression of Interest”. 2013年9月4日閲覧。
  20. ^ Dio Synodinos (2012年11月30日). “HTTP 2.0 First Draft Published”. InfoQ. 2013年9月4日閲覧。
  21. ^ Final HTTP-NG Activity Statement”. World Wide Web Consortium. 2013年9月4日閲覧。
  22. ^ The RFC Editor Team (14 May 2015). "RFC 7540 on Hypertext Transfer Protocol Version 2 (HTTP/2)". ietf-announce (Mailing list). 2015年5月15日閲覧
  23. ^ Is it HTTP/2.0 or HTTP/2?”. 2014年9月15日閲覧。

関連項目

[編集]

外部リンク

[編集]
  翻译: