HTTP/2

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

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

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

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

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

対応状況

ウェブブラウザ 
下記ウェブブラウザが対応している。ただし、全てHTTP/2 over TLSのみである。
 Google Chrome (30は設定が必要）
 Mozilla Firefox (34から標準で有効)
 Microsoft Windows 10上のInternet Explorer 11
 Microsoft Edge
 Opera
 Safari 9から

サーバ 
 IIS 10.0（Windows 10，Windows Server 2016）
 OpenLiteSpeed 1.3.11 および 1.4.8
 LiteSpeed Web Server 5.0
 Akamai Edge Servers
 Amazon CloudFront
 nginx 1.9.5 
 Apache 2.4.17 
 H2O (HTTP/2対応を目的として1から設計されている) 
 lighttpd 1.4.56

その他 
 GitHub HTTP/2 wikiを参照

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

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

開発マイルストーン 
IETFのHypertext Transfer Protocol Bis (httpbis) ワーキンググループによる。

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

出典

関連項目 
 HTTPパイプライン
 HTTP/3

外部リンク 
 
 HTTP/2 JP 
 HTTP/2 Japan Local Activity 
 仕様
 : Hypertext Transfer Protocol Version 2 (HTTP/2)
 : Hypertext Transfer Protocol Version 2 (HTTP/2): 旧バージョン
 : HPACK: Header Compression for HTTP/2
 HTTP/2 RFC/7540の日本語訳

Hypertext Transfer Protocol
アプリケーション層プロトコル
World Wide Web
7540