Open2

HTTPについて

Hina🐣Hina🐣

HTTP/1.1とHTTP/2について

項目 HTTP/1.1 HTTP/2
通信形式 テキストベース バイナリベース
リクエスト 同時に1本ずつ 同時に複数送れる(マルチプレックス)
速度 相対的に遅い 非常に高速・効率的
接続管理 複数のTCP接続が必要 一本のTCPで全部処理できる
ヘッダー 毎回すべて送信(冗長) 圧縮される(HPACK)
サーバープッシュ なし あり(サーバーが先回りしてリソースを送れる)

各項目について

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