LoginSignup
5
7

More than 5 years have passed since last update.

[HTTP]HTTP2について学ぶためスライドを見たまとめ

Posted at

スライドURL

DeNA開発HTTPサーバ

  • H2O

サーバ技術の評価軸

  • サーバ負荷
  • 転送データ量
  • 応答性
  • 設定、運用コスト

HTTP2の基本

登場背景

  • エンドユーザーの通信速度は上昇
    • LTEの普及とか
  • だがページロード速度はそれに比例しない
    • (1.6Mbpsで頭打ち)
  • ページロードはレイテンシ(※1)が小さいほど速い
    • まぁ当然

なぜHTTP2か

  • HTTP1.1は多重性がない
    • 1RTT(※2)あたり1リクエスト/レスポンスしかできない
    • 緩和策は複数のTCP接続を使う
      • 1RTTあたり6リクエスト
        • ?どうやって?
  • 多重性がないために複数のリクエストを必要とする
    • そうなると1RTT毎のレイテンシが通信速度に重くのしかかる
  • そのために開発されたのがHTTP2!!!

HTTP2とは

基本的な技術要素

  • バイナリプロトコル
  • 多重化
  • ヘッダ圧縮

バイナリプロトコル

  • 脆弱性を防ぐ
  • 転送データ量の低減
  • 全てのデータは「フレーム」に分解して送受信

多重化

  • 同時に100以上のリクエストを送信可能
  • 任意のタイミングでリクエスト送信可能
  • レスポンスの順序に制限なし
    • 先のレスポンスを待たないってことか

ヘッダ圧縮

  • HTTP1.1のヘッダは大きい
    • リクエストで最低でも300バイト程度
    • レスポンスで通常300バイト程度
    • 100回通信するとヘッダだけで60kb

HTTP2.0体感サイト

HTTP2.0体感サイト

HTTP1.1とHTTP2.0のやり取り簡易比較図

1.1と2.0

レスポンス優先度

  • クライアントがサーバにレスポンス優先度を指定
  • サーバはその優先度を参考にレスポンスを返す順番を決める
  • 優先度指定することでユーザ体感速度を大幅に向上させることができる
    • 初期描画を優先したレスポンスにすることによる

サーバプッシュ

  • HTTP2はRTTを隠蔽する技術
  • でも最低1RTTはいるよね??
    • 実は0RTTにすることができる
  • それが「サーバプッシュ」
    • サーバがクライアントの発行するリクエストを予測してレスポンスをプッシュ
  • まだ仕様の標準化はされてない
  • ブラウザ対応がまだ
  • ポテンシャルは秘めている

サーバプッシュ

参考サイト

調査ワード

※1:レイテンシ

※2:RTT

ラウンドトリップタイム

  • リクエストしてからレスポンスが返るまで

ラウンドトリップタイム

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7