April 2020
Intermediate to advanced
496 pages
7h 33m
Japanese
本章では、HTTP/2やHTTP/3、その前後に策定された新しい世代のさまざまなプロトコルについて紹介します。
それ以外に紹介するWebSocketやWebRTCも、HTTP/1.1では実現できなかった、高速な双方向通信であったり、P2Pの接続、動画の特性に合わせた通信などを実現するために生み出されました。ウェブの可能性をさらに広げるための進化と言えます。
HTTP/1.1までの、メールやニュースグループを参考に作られたテキストで表現されたプロトコルに比べると、HTTP/2、HTTP/3は大きな飛躍を遂げました。ウェブサイトで使われる画像やCSS、JavaScriptなどのファイルが数もサイズも増えていく中で、より高速に転送できる仕組みがもとめられたからです。単純な機能の漸進的な修正ではなく、すべての要素が一度分解されて、大量のアセットが必要な時代の要件に合致するようにゼロから組み上げられました。
通信のオーバーヘッドを小さくするためにバイナリプロトコルとなり、HTTPの特性に合わせたヘッダー圧縮などが組み込まれました。また、その下のTCPのレイヤーで行っていることをエミュレーションしたり、高度な制御機構を取り込みました。
一方で、今まで紹介してきた、メソッド、ヘッダー、ステータス、ボディという「HTTPの提供する4つの基本要素」は変わらないため、HTTP/2やHTTP/3のプロトコルを直接読み書きするクライアントコードやサーバーから見ると大きな変更ですが、ブラウザのフロントエンドや、ウェブアプリケーションから見ると、HTTP/1.1と差はありません。 ...