🦔
【初学者によるまとめ】この一冊で全部わかるWeb技術の基本 「Chapter3」>「08 HTTP/2のやりとり」
目的:「イラスト図解式 この一冊で全部わかるWeb技術の基本」の要点を自分なりにまとめ、Qiitaへアウトプットして理解力の向上に努める。
注意点 |
---|
🤔 ←この絵文字の文章は個人的な見解になります。的外れなこともあるかと思います。 |
(参考書籍)
(参考サイト)
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通信における処理待ちが解消
- その幾つかのストリームをそれぞれ"1本の独立したコネクション"と見立て、並行してHTTPリクエストとHTTPレスポンスの送受信を行っている
🤔<(HTTP/1.1 が"キュー"みたく一本道のFIFOだったのが、複数の経路が出来たことで並行可能になったという解釈でOK?)
Discussion