Open2
HTTPについて

HTTP/1.1とHTTP/2について
項目 | HTTP/1.1 | HTTP/2 |
---|---|---|
通信形式 | テキストベース | バイナリベース |
リクエスト | 同時に1本ずつ | 同時に複数送れる(マルチプレックス) |
速度 | 相対的に遅い | 非常に高速・効率的 |
接続管理 | 複数のTCP接続が必要 | 一本のTCPで全部処理できる |
ヘッダー | 毎回すべて送信(冗長) | 圧縮される(HPACK) |
サーバープッシュ | なし | あり(サーバーが先回りしてリソースを送れる) |
各項目について
- マルチプレックス
HTTP/1.1の問題
- 同じTCP接続の中でリクエストが1個ずつしか送れない
- 画像・JS/CSSなどを読み込みたいのに(画像とかが重くて)順番待ちが発生
HTTP/2での改善
- 1つの接続で複数のReq/Resを同時に送受信
- 重い画像が遅くてもほかのJS/CSSはすぐに処理が可能 - ヘッダー圧縮(HPACK)
HTTP/1.1の問題
- 毎回「User-Agent」「Accept-Language」などのヘッダーを全送信(無駄)
HTTP/2での改善
- 一度送ったヘッダーはキャッシュ+圧縮される → 帯域削減、効率UP - サーバープッシュ
HTTP/1.1
- クライアントが index.html を取った後に style.css を「リクエスト」する
HTTP/2
- サーバーが「HTML出したから、CSSもJSも必要でしょ」と先回りで送ってくれる
