まなびの森

WebやITに関係した学習記録です。

【イラスト図解式 この一冊で全部わかる Web技術の基本】 「3-8.HTTP/2のやりとり」を読んで

f:id:Web773:20210713134317p:plain

【イラスト図解式 この一冊で全部わかる Web技術の基本】
「3-8.HTTP/2のやりとり」を読んで

「イラスト図解式 この一冊で全部わかる Web技術の基本」の第3章8節についての要点、自分なりの知識の整理の2点を述べていきます。


1.要点
HTTP/2はGoogleが提案した通信の高速化を目的としたSPDY(スピーディー)というプロトコルを使用
ストリームによる多重化

※ストリームとは
HTTPリクエスト(以下リクエスト)からHTTPレスポンス(以下レスポンス)までの一連のやりとり
仮想的な通信経路

HTTP/2はひとつのTCPコネクションにストリームを複数形成して、リクエストとレスポンスをやりとりできる
→レスポンスの待ち時間がなくなり、通信がより高速化

2.知識の整理

  • なぜHTTP/2に改良されたのか?


<気になった理由>
・HTTP/1.1の課題とHTTP/2のメリットがわかるから
・HTTP/1.1という16年も使ってきたバージョンを変えるとは、よほど何かすごいことがなされているのでは!?と思ったので…(好奇心)(ほかのバージョンは数年単位で変わっている)

【結論】基本的なしくみは従来と変わらないが、転送手段が新しくなった

HTTP/2は「より少ない通信量」「よりWebコンテンツの読み込みを高速化」がポイントになります。

HTTP/2について知る前に、本書で出てきたSPDYについて調べてみました。

SPDYとは
Googleが開発したプロトコル
・目的はWebのコンテンツの読み込みの高速化
・最終的にHTTP/2が吸収

以下の課題をプロトコルレベルで解決
・1回のコネクションにつき1つのリクエストしか送れない
・リクエストがクライアント(ブラウザ)からしか開始できない
・リクエスト/レスポンスヘッダーが非圧縮のためヘッダーサイズが大きい
・ヘッダーが長い
・データ圧縮の使用が強制ではない

<なぜHTTP/2が必要だったのか>
上記の課題を解決したかったため

HTTP1.0では、1つのリクエストが完了するまで、次のリクエストを送ることができませんでした。

f:id:Web773:20210713121832p:plain

HTTP/1.0のしくみ(2017,さくらのナレッジ)


HTTP/1.1
では、ブラウザが複数のリクエストを同時に送れるようになりました。
しかし、レスポンスはリクエストされた順番を忠実に守って送られます。
つまり、データの容量が大きいとき、読み込みが遅いファイルがあるとき、通信に時間がかかってしまう状況に陥ってしまうのです。(むずかしい)

f:id:Web773:20210713072410p:plain

HTTP/1.1のしくみ(2017,さくらのナレッジ)


HTTP/2
の登場により、これらの課題が網羅的に解決されていきます。

f:id:Web773:20210713122131p:plain

HTTP/2のしくみ(2017,さくらのナレッジ)

ストリームの登場により、リクエスト処理の時間が短縮できるようになりました。
ストリーム単位でやりとりされるので、シンプルかつスピーディーな通信ができるようになるんですね。
HTTP/1.1で抱えていた課題が解決されました。(やったね)

明日はHTTP/2の改良点についてもう少し深掘りしてまとめます!

ご意見やご指摘、感想などコメントでお待ちしています!
最後まで読んでいただき、ありがとうございました!

【出典】
イラスト図解式 この一冊で全部わかるWeb技術の基本

HTTP/2-MDN Web Docs
普及が進む「HTTP/2」の仕組みとメリットとは
SPDY: An experimental protocol for a faster web- The Chromium Projects
「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法