Web技術の基礎

HTTP/2とHTTP/3の説明として正しいものはどれか。

  1. AHTTP/2は1つのTCP接続で複数のリクエストを並行して扱えるが、パケットの損失でほかのストリームも待たされることがあり、HTTP/3はUDP上のQUICでこれを減らした
  2. BHTTP/2は、HTTP/1.1と同じテキストの形式のメッセージを使い、リクエストごとに新しいTCP接続を並行して作ることで、複数の資源を同時に受け取れるようにした版である
  3. CHTTP/3は、HTTP/2と同じくTCPの上で動き、ヘッダを圧縮する方式だけを改めた版で、パケットの損失の影響はHTTP/2と変わらず、UDPは使わない
答えと解説を見る

正解:A. HTTP/2は1つのTCP接続で複数のリクエストを並行して扱えるが、パケットの損失でほかのストリームも待たされることがあり、HTTP/3はUDP上のQUICでこれを減らした

HTTP/1.1でも持続的接続(keep-alive)で1つのTCP接続を使い回せますが、1つの接続では応答を1つずつ順に受け取るため、ブラウザは複数の接続を並行して張っていました。HTTP/2はメッセージをバイナリのフレームに分け、1つのTCP接続の上に複数のストリームを多重化して並行に送ります。ただし、TCPはバイト列を順番どおりに渡すので、パケットが1つ失われると、再送が届くまで関係のないストリームのデータも待たされます(ヘッドオブラインブロッキング)。HTTP/3はUDPの上で動くQUICを使い、ストリームごとに順序を管理するので、損失の影響がそのストリームだけにとどまります。

  • A. 正しい。HTTP/2は多重化で並行して送れますが、TCPでの損失の影響がすべてのストリームに及びます。HTTP/3はQUICでこれを減らしました。
  • B. HTTP/2はバイナリのフレームを使い、1つの接続に複数のリクエストを多重化します。接続を作り直すと、むしろ遅くなります。
  • C. HTTP/3はTCPではなく、UDPの上で動くQUICを使います。
この分野を解く 分野ページへ

Web技術の基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Web技術の基礎のほかの問題

  1. RTTが40 msのWebサーバから、HTMLを1つと、そこから参照される画像を4つ、1つずつ順番に取得する。TCPの接続の確立に1往復、各リクエストと応答に1往復かかるとし、データの転送時間、サーバの処理時間、TLS、接続の切断は考えない。オブジェクトごとに新しいTCP接続を張る場合と、1つのTCP接続を使い回す持続的接続の場合とで、かかる時間の差はどれか。
  2. HTTPはステートレスなプロトコルである。このことと、Webサイトでログインした状態を保つ一般的な方法の説明として、正しいものはどれか。
  3. 上のヘッダで設定されたCookieについての説明として、正しいものはどれか。
  4. ブラウザのlocalStorageとCookieの違いとして、正しいものはどれか。
  5. ロードバランサの後ろに3台のアプリケーションサーバを置き、リクエストを順番に各サーバへ振り分けている(ラウンドロビン)。ログインした利用者のセッションの情報は、ログインを処理したサーバのメモリだけに保存している。起こりやすい問題と対策の組み合わせとして、適切なものはどれか。