対応の順番を逆に紹介していましたが、

前回のSEO対策、データの転送量の削減の為の圧縮で紹介した圧縮アルゴリズムのBrotliは事前にHTTP/2というプロトコルに対応している必要があります。


先にHTTP/2について触れておきます。

HTTP/2


network_fig


自身のパソコンのブラウザから遠隔にあるサーバに配置しているウェブサイトのデータを取得することを考えます。

サーバは最初にブラウザから送られてきたリクエスト、例えばルート直下にあるindex.htmlファイルが欲しいというリクエストに対して、任意のindex.htmlを返します。


そのHTMLファイルには画像を意味するimgタグの記載があったりします。パソコン側がimgタグを見つけると、そのタグ内にあるsrc属性に記述されている画像ファイルをサーバに対して再びリクエストを送ります。


図にして整理してみると、HTTP/2より前のHTTP/1.1では、


http_1_1


画像ファイルに関してサーバに関して1ファイルずつリクエストを送り、都度レスポンスを受信していたが、


http_2


HTTP/2では、(回線が許す限り)一度に画像ファイルを受け取ることが出来るようになった。

HTTP/2パソコンからのリクエストの回数の大幅な削減により、ブラウザ-サーバ間のデータのやり取りの高速化だけでなく、インターネット全体の回線の利用回数が大幅に削減出来るようになった。


ただし、一度にやりとりするデータ量が増えてしまった為、サーバから送信される画像のサイズの重要性が増した。

※インターネット間でやりとりされるデータはほぼ画像で占められているらしい。


今回紹介したHTTP/2の対応方法は下記の記事に記載があります。

サーバに利用しているミドルウェアはApacheです。

当サイトをHTTP/2対応して表示の爆速化してみた


HTTP/2について詳しく知りたい方は、


picture_large978-4-87311-804-8


オライリーのReal World HTTPをオススメします。


余談

サーバをApacheではなく、LiteSpeed等のミドルウェアで立てている場合、HTTP/3(QUIC)という更に最適化したプロトコルが利用できるようになります。

極力Apacheを使っていきたいというポリシーから当サイトではApacheがHTTP/3に対応することを待つことにしています。

LiteSpeed | Internet. Accelerated. - LiteSpeed Technologies

HTTP/3 - Wikipedia