- 1991年 HTTP/0.9 リクエストされたものをただ返す
- 1996年 HTTP/1.0 レスポンスヘッダ追加(ステータスコード)、POST等追加
- 1999年 HTTP/1.1 バーチャルホスト対応、Keep-Alive、パイプライン化
- 2009年 SPDY/1
- SPDY/3 をbaseにHTTP/2策定
- 2015年 HTTP/2 (SPDY/4)
策定当時から時間がたち限界が見えてきた
- コンテンツのサイズ、数の増加(リッチコンテンツ化)
- HTTPヘッダの増加
- 基本的に1つのリクエストに対して1つのレスポンスを返す 複数リクエストを同時に投げることは一応可能
- HTTPパイプラインはOperaくらいしか、、、
引用: HTTP/2はどうしてコネクション一つで通信できるのか
引用: HTTP/2はどうしてコネクション一つで通信できるのか
優先度をサーバーにリクエスト可能。
ただし サーバは優先度を無視しても構わない
- 重み付け ストリーム A:Bを1:2とか
- 依存関係
- HPACKで圧縮
- バイナリ形式
- 1度送信したヘッダーは基本的には再度送信することはなく、必要な差分ヘッダーのみ送信する
一つのストリームが帯域を食いつぶさないようにする仕組み。流れの制御。
- Window Size分送信者はデータを送信する
- 受信側は処理が完了し次のデータを受け取る準備ができたらWINDOW_UPDATEフレームでWindow Sizeを送信者に通知する
※コネクション全体の Window Size と ストリームのWindow Sizeがある ※ Window Size を消費するのは DATA Frameだけ。他のフレームに影響が出ないように。

