ステータスコード「103 Early Hints」はHTTP運用をどう変えるのか?
Webサービスのユーザビリティ向上を考える上で、Webサイトの軽量化は欠かせないアプローチの一つと言えます。特にウェブサーバーからページ情報を取得し、表示させるまでのスピードについては改善が進み、各社独自の取り組みや、Webブラウザのアップデートによって実行が可能になっています。
今回はHTTP運用を改善するための方法の一つとして知られる、レスポンスステータスコード「103 Early Hints」の効果について、運用メリットに注目しながらご紹介します。
目次:
- HTTP/2とは
- HTTP/2 Server Pushの問題点
- 103 Early Hintsの概要
- 103 Early Hints運用のメリット
- 103 Early Hintsの今後
HTTP/2とは
まずは、現在主流のプロトコル(通信方法)であるHTTP/2の仕組みについて確認しておきましょう。HTTP/2はWebサーバーからインターネット経由でデータを取得し、Web常にコンテンツを表示するための手段です。
クライアント、つまりそのWebサイトにアクセスしたユーザーが、Webサイト訪問時にコンテンツを表示するようWebサーバーにリクエストを送ります。Webサーバーはそのレスポンスとしてコンテンツをクライアントのデバイスで表示するよう情報を送信し、円滑なWeb利用が実現しているという仕組みです。
逆を言えば、Webサイトを含めた全てのWeb上のサービスは、クライアント上のデバイスだけで処理が完結しているわけではなく、インターネットを介してサーバーとのやりとりが高速で行われることで、円滑な運用が可能になっています。
さらに言えば、このクライアントとサーバーのやり取りの無駄が削減されれば、さらにWeb利用が円滑になる可能性を秘めているとも言えるでしょう。
HTTP/1.1との違い
HTTP/2は、実はそんなWeb利用の改善を目指して実装された、HTTP/1.1のアップグレード版です。HTTP/1.1は1999年に公開されたプロトコルですが、HTTP/2は2015年に新たに公開され、広く普及している技術でもあります。
従来運用されてきたHTTP/1.1は、クライアントのリクエストに対して一つずつでしか対応ができなかったため、表示速度を今ひとつ高めることはできませんでした。これに対してHTTP/2は一度にまとめて複数のリクエストに対応できるようになったため、HTTP/1.1よりもはるかに高速な通信を可能にしています。
また、HTTP/2はインターネット上の全てのWebサービスに対応しているわけではなく、HTTPSによって暗号化された、安全なサイトでなければその恩恵を受けられないといった特徴も備えています。あらゆるWebサービスに有効であるわけではないという点には注意が必要です。
HTTP/2 Server Pushの概要と問題点
そんなHTTP/2の運用効率をさらに高めようということで、新たに実装されている技術が「Server Push」と呼ばれるものです。Server Pushは、クライアントとサーバーのリクエスト・レスポンスのやり取りを簡略化するための仕組みで、サーバーからクライアントへ、リクエストが行われる前にあらかじめデータを送ってしまうという方法を採用したものです。
リクエストからレスポンス、という手続きを一部のデータを取得する前に実行できるため、そこで生まれた余剰が結果的にWebサイトの表示効率改善に貢献するだろう、という狙いがあります。
一見するとそのようなServer Pushの機能は画期的で効率的な方法であるようにも思われますが、実際の運用の際には問題点も見られました。
HTTP/2 Server Pushの問題点
Server Pushの問題点は、先回りして送信したデータがすでにクライアントがキャッシュとして所有していた場合、先回りの処理そのものが無駄になってしまうという点です。何度も足繁く利用するWebサイトとなると、各ユーザーはデバイスにそのサイトのデータをキャッシュという形式で保存しているため、独自にWebサイト表示を軽量化することができます。
そのため、Server Pushによる恩恵はこのようなユーザーにとっては得ることができず、むしろ処理を増やしてしまうだけの機能であることとなってしまいます。
103 Early Hintsについて
このようなServer Pushの運用課題を受けて、新たに導入が進みつつあるのが「103 Early Hints」です。103 Early HintsはHTTPがクライアントがレスポンスを正常に処理できたかを示すHTTPレスポンスステータスコードの一種で、5つあるカテゴリのうち、「情報レスポンス(100-199)」に含まれるものです*1。
クライアントはEarly Hintsをサーバーから受信することで、完全なレスポンス処理が行われる前に、先に読み込みが可能なリソースを伝え、レスポンス処理が完了する前にデータ読み込みを進め、結果的に表示速度を向上できるという仕組みです。
103 Early Hints運用のメリット
Early Hintsを運用する最大のメリットは、やはりWebページの表示速度を改善できるという点です。Server Pushではあらかじめクライアントにデータを直接送ることで速度改善を進めようとしていましたが、Early Hintsの場合はクライアントが必要とするアセットのURLを送信することで高速化を行います。
ネットワークソリューション企業のCloudFlareは2021年の9月に、Early Hintsのサポート対応を発表しました。Early Hintsを実装することで、追加料金を支払わなくともネットワーク上のWebサイトを30%高速化できるとしており、高い実装効果が期待されています*2。
また、Google ChromeにおいてもEarly Hintsは現在ベータ版でテスト段階に差し掛かっており、今後の本格的な運用が期待されています*3。
まとめ
Webサイトの表示速度の向上に向けた技術改善は現在進行形で進んでおり、これまでにさまざまな取り組みが行われてきました。
Early Hintsの運用もその一つといえ、Server Pushの代替機能として実装に向けたテストが始まっています。Server PushはすでにChromeでの運用サポートが終了しているため、今後はEarly Hintsの本格的な運用を視野に入れた技術改善が求められるでしょう*4。
建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!
CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!
参考:
*1 MDN「HTTP レスポンスステータスコード – HTTP」
https://developer.mozilla.org/ja/docs/Web/HTTP/Status
*2 窓の杜「追加料金なしにWebサイトを30%高速化 ~Cloudflareが「103 Early Hints」に対応、」
https://forest.watch.impress.co.jp/docs/news/1352079.html
*3 *2に同じ
*4 HACK The Nikkei「ChromeとFastlyのEarly Hintsの効果計測に貢献する」
https://hack.nikkei.com/blog/advent20201220/