HTTPの進化を"Semantics"から読み解く──標準化の最前線が変えるWebの未来
【20-B-6】HTTP最前線
Webアプリケーションを開発するエンジニアにとって、HTTPは意識する機会が少ないインフラだ。ブラウザが処理し、フレームワークが隠蔽し、CDNが最適化してくれる。だが、その裏側では、HTTP/1.1・HTTP/2・HTTP/3といった複数のバージョンが並立し、プロキシやCDNを経由するたびにプロトコルが変換され続けている。ファストリー株式会社でSenior Principal OSS Engineerを務める奥一穂氏は、HTTPサーバ「H2O」の開発、TLSやQUICプロトコルスタックの実装、そしてRFCの共著という実装・標準化・運用の3つの軸で活動している。「今日はこの3点に関連して触れていきます」と語った奥氏は、HTTPの設計思想を根本から捉え直した上で、現在標準化の議論が進んでいる5つの技術を解説した。
なぜ「Semantics」と「Transport」を分けるのか
奥氏がまず取り上げたのは、「HTTP Semantics」という概念だ。かつてHTTPがバージョン1.1しか存在しなかった頃、仕様はプロトコル全体を一体として定義していた。HTTP/2の登場以降、「バージョン間の差分」を管理する複雑さが増し、最終的にIETF(Internet Engineering Task Force)は「意味論(Semantics)」と「通信手法(Transport)」を明確に分離することを選んだ。
現在では、RFC 9110がHTTPの意味論を、RFC 9111がキャッシュを定義し、各バージョン(HTTP/1.1、2、3)はそのSemanticsをどのようにバイト列に変換して送るかを規定するという構造になっている。
この分離がなぜ重要なのか。奥氏は「HTTPプロキシがどう動くかを考えると分かりやすい」と述べた。クライアントからリクエストがHTTP/1、2、3のどれで届こうが、一旦これを内部的にSemanticsに変換し、次にサーバに繋ぐときにまた適切なバージョンに変換して送る。実際にFastlyの中でも、クライアントからHTTP/3で来て、内部でHTTP/2で転送し、Varnishなどのロジックを通ってまた転送し、最終的にオリジンサーバに届くという多段構成になることがある。
この多段構成において、「Hop(ホップ)」はそれぞれ独立したプロトコルのやり取りとして機能する。Connection: closeやTransfer-Encoding: chunkedといったヘッダは「Hop-by-Hop(ホップバイホップ)」の特性を持ち、その区間だけで完結する情報だ。
一方、HTTPメソッドやステータスコード、Content-Typeなどは「End-to-End(エンドツーエンド)」の特性を持ち、クライアントから最終的なオリジンまで引き継がれるSemanticsの一部である。
「今後、新しいアプリを書く際は、この『Semanticsのみ』を使って書くようにすると、将来のバージョン変更に対しても互換性の懸念がなくなります」
この記事は参考になりましたか?
- Developers Summit 2026 セッションレポート連載記事一覧
-
- 30年分の失敗から学べ! メーカーの元ソフトウェアリーダーが語る、良いチームの条件とリーダ...
- HTTPの進化を"Semantics"から読み解く──標準化の最前線が変えるWebの未来
- インシデント発生時の「誰の責任?」論争に終止符を! PMとエンジニアの対立を解消する意思決...
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
提供:ファストリー株式会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
