全4914文字

 Webは日常生活に欠かせなくなっている。Webの用途は、Webサイトに掲載されている記事を閲覧するだけにとどまらない。メールや音楽、動画、SNS、ショッピングなど多岐にわたる。

 このためWebに関する技術も日々進化している。そこで本特集では、Webの高速化やプライバシー保護といった最新技術を、実験も交えて分かりやすく解説する。さらに、Webの標準仕様や技術の最新動向も説明する。

 まずPart1では、高速化技術について解説しよう。

HTTPはシンプル

 WebブラウザーとWebサーバーはHTTPというプロトコルを使って通信する。HTTPはリクエスト(要求)とレスポンス(応答)で構成されるシンプルなプロトコルである(図1-1)。

図1-1●HTTPのリクエストとレスポンスでやりとり
図1-1●HTTPのリクエストとレスポンスでやりとり
WebのやりとりにはHTTPを使う。Webブラウザーはデータを取得するためのリクエストをWebサーバーに送信。それに対してWebサーバーは、要求されたデータをレスポンスとして返す。
[画像のクリックで拡大表示]

 Webブラウザーは、取得したいデータ(リソース)を指定したリクエストをWebサーバーに送信する。Webサーバーは、要求されたデータをレスポンスとして返す。

 リクエストとレスポンスは順次実行される。このためWebブラウザーが要求するデータの数が多くなると、すべてのデータを取得するまでに時間がかかってしまう。

 そこでHTTPでは、複数のリクエストを並行して処理することで高速化を実現している(図1-2)。その仕組みは、HTTPのバージョンを重ねるとともに進化している。

図1-2●複数のリクエストとレスポンスを同時に実行
図1-2●複数のリクエストとレスポンスを同時に実行
HTTP/2はTLS 1.2、HTTP/3はQUICのパイプラインを作ってその中で複数のリクエストとレスポンスを同時に実行する。これにより通信の高速化を図る。
[画像のクリックで拡大表示]

 1996年にRFCとして標準化されたHTTP/1では、複数のリクエストとレスポンスを並行して処理し高速化を図った。ただしリクエストとレスポンスはそれぞれ1つずつ処理する必要がある。また、リクエストがあるたびにTCPのセッションを張らなければならない。このため並行で処理できる数は多くなく、セッションを張るためのオーバーヘッドも大きい。

 そこでHTTP/2では、パイプラインという考え方を導入している。TLS 1.2のセッションを張り、その中で複数のリクエストとレスポンスを同時に処理できるようにした。セッションを張るオーバーヘッドを解消するとともに、リクエストとレスポンスを順次処理する必要もなくなった。

 HTTP/2は米グーグルが開発したSPDYというプロトコルをベースとしており、2015年にRFCが発行された。