HTTP
#Web
HTTP/1とHTTP/2の違い
バイナリプロトコル
http/1ではテキスト形式でやり取りしていた
都度ウェブサーバーが理解できるバイナリ形式へとパースする必要があった
http/2ではバイナリ形式でやり取りするのでパースする必要がないから効率がいい
ストリームの多重化
http/1では一つのリクエストを直列に処理しなければいけなかった
http/2では複数のリクエストを同時に処理できる
リクエストをtcp通信でフレームに分割して送信している
優先度の制御
ストリームの優先度を制御できることで、「見た目」を優先したいみたいな制御が可能になった
ヘッダの圧縮
HTTPヘッダの内容は大体同じ
ヘッダの差分のみを取り出して送信
HPACK圧縮によるコンテキストを接続全体で共有し、初回以降はヘッダ差分のみを送信をする。
ステートフル
HTTP/1の問題点
ファイル形式の違いによる「解析」という余分な処理が必要
送受信できるファイルは1つのみ
重複した情報が何度も送信される
HTTP/2にすることで効率化できるから高速化が期待できる
HTTP/2とHTTP/3の違い
Quickの利用
http/2ではtcp
http/3ではquick
tcpだとパケットロスが発生した時に再送処理が行われてそれが他の通信(ストリーム)にも影響を与えてしまう問題があった
ストリームの依存性
quickではこのあたりの問題がない
参照
HTTP1.1からHTTP2に乗り換えるとどうなる?
進化するHTTPの歩み
/razokulover-tech-memo/HTTP/3