🦔

【初学者によるまとめ】この一冊で全部わかるWeb技術の基本 「Chapter3」>「08 HTTP/2のやりとり」

2024/12/09に公開

目的:「イラスト図解式 この一冊で全部わかるWeb技術の基本」の要点を自分なりにまとめ、Qiitaへアウトプットして理解力の向上に努める。

注意点
🤔 ←この絵文字の文章は個人的な見解になります。的外れなこともあるかと思います。

(参考書籍)

  1. イラスト図解式 この一冊で全部わかるWeb技術の基本

(参考サイト)

  1. 日本ネットワークインフォメーションセンター
  2. 英辞郎
  3. IT用語辞典
  4. Kinsta
  5. MDN

HTTP/2のやりとり

  • HTTP/1.1 が誕生したのは1997年ごろ
    • 画像が埋め込まれているWebページであっても効率的にHTTP通信がされるように改良
  • HTTP/1.1 をより機能性を向上させ効率的な通信を実現したのがHTTP/2という新バージョン
    • 最近のWebアプリで見られる大量の画像や動画などデータ量が大きいデータのやりとりを高速化する目的で登場

:::note warn

  • HTTP/2 … 2012年頃に登場したHTTPの新バージョン
    • HTTP/1.1 と同じく標準化されている
    • 通信の高速化を実現
    • Googleが開発
      :::

ストリームによる多重化

:::note warn
ストリーム("stream":小川、流れ、連続)
 ⇒『ITの分野では連続したデータの流れや、データの送受信や処理を連続的に行うことなどを意味する(IT用語辞典より)』
:::

【HTTPの改良の歴史】 説明 改良点 課題
HTTP/1.1 より前 現代のHTTP通信の礎 文書以外も扱えるようにした (1) HTTPリクエスト毎にコネクションを確立&切断をするため非効率

(2) HTTPレスポンスが返ってくるまで次のHTTPリクエストは送信できないため"処理待ち"が生じる
HTTP/1.1 登場以降 HTTPリクエストの (1) HTTPリクエスト毎のコネクション切断せず、確立したコネクションを保つ
(HTTPキープアライブ)

(2) HTTPレスポンスを待たなくてもHTTPリクエストを送信可能
(HTTPパイプライン)
(A) HTTPリクエストは並行的に送信可能だが、HTTPリクエストの送信順でHTTPレスポンスを返す必要がある
... ... ... ...

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

課題(A) 例) HTTPリクエスト①②③を順に送信。ただし、①の処理に時間がかかるとする
1 Webサーバーがリクエスト①②③を処理着手
2 ②③の処理は完了したが、①の処理に時間がかかる
3 ①のレスポンス準備が完了するまで処理待ち ←ここでボトルネックが生じている
4 ①の処理が完了したので、受信順の①②③でレスポンス
  • HTTP/1.1 は「WebサーバーはHTTPリクエストの受信順でしかレスポンスが返せない」ことでWebページの表示が遅くなることが課題としてあった
  • HTTP/2 では1つのコネクション上にストリームという仮想の通信経路を複数生成する
    • その幾つかのストリームをそれぞれ"1本の独立したコネクション"と見立て、並行してHTTPリクエストとHTTPレスポンスの送受信を行っている
      • これによってHTTP通信における処理待ちが解消

image.png

🤔<(HTTP/1.1 が"キュー"みたく一本道のFIFOだったのが、複数の経路が出来たことで並行可能になったという解釈でOK?)

Discussion