検索
特集/連載

「HTTP/3」で何が変わった? QUIC、HTTPSがもたらした“Web通信の進化”「HTTP」の基本と進化を理解する【後編】

Webページがスムーズに、そして安全に届くのは、通信技術の進化があってこそだ。「HTTP/3」で採用された「QUIC」や、Webの安全性を支える「HTTPS」などの役割をひもとく。

Share
Tweet
LINE
Hatena

 WebブラウザとWebサーバのやりとりを支える通信プロトコル「HTTP」(Hypertext Transfer Protocol)は、単なるデータの送受信にとどまらず、ユーザー体験やセキュリティ、ネットワーク負荷の制御といったさまざまな課題に向き合っている。そのニーズに応える形で、HTTPは進化を重ねてきた。

 最新の「HTTP/3」では、従来のプロトコル「TCP」(Transmission Control Protocol)から、より高速かつ安全な通信を可能にする「QUIC」(Quick UDP Internet Connections)への転換が進んでいる。加えて、データの暗号化と認証によって通信の安全性を確保する「HTTPS」(Hypertext Transfer Protocol Secure)の活用も進んでいる。後編となる今回は、HTTPの進化の軌跡とそれを支える技術要素を整理する。

HTTP/3が採用するプロトコル「QUIC」

 従来のHTTPは、トランスポート層(レイヤー4)のプロトコルとしてTCPを使用していた。WebサーバとWebクライアントが、古いバージョンのHTTPを介してリクエストやレスポンスをやりとりする際、TCP/IPを利用して情報を小さなバイナリデータのパケットに分割して送信していた。これらのパケットは、電線、光ファイバーケーブル、無線ネットワークを通じて物理的に送信される。

 TCPはコネクション型のプロトコルであり、エラーチェックの仕組みを備えているため、Webコンテンツの確実な配信と正確な表示を確保するのに役立っていた。さらに、TCPはデータ転送の複雑さを処理するため、HTTPはクライアントからサーバへのリクエストに応じてWebリソースをフォーマットし、解釈し、表示することに集中できるようになる。

 最新バージョンのHTTP/3は、TCPではなくQUICプロトコルを使用している。QUICは2012年にGoogleが開発したプロトコルだ。より速い接続の確立、トラフィック(ネットワークを流れるデータ)の混雑制御、低遅延、組み込みのセキュリティなど、UDP(User Datagram Protocol)を基盤としながらさまざまな利点を提供する。

 QUICは、ネットワーク間のスムーズな移行を可能にする。これは多くの種類のデバイスを使用し、頻繁にネットワークを切り替えるユーザーや、IoT(モノのインターネット)デバイスの接続にとって有用だ。さらに、高頻度のトランザクション(不可分な一連の処理)を必要とする接続において、遅延や中断を最小限に抑え、デバイスの電力消費を削減してWebアプリケーションのパフォーマンスを向上させる。

HTTPにおけるプロキシ

 プロキシ、またはプロキシサーバは、クライアントデバイスとサーバの間に位置するアプリケーション層(レイヤー7)のサーバ、または他のマシンのことだ。プロキシはクライアントとサーバ間でHTTPリクエストとレスポンスを中継する。クライアントとサーバのやりとり1回ごとに1つ以上のプロキシが関与する場合もある。

 プロキシには、透過型のものと非透過型のものがある。透過型プロキシはクライアントのリクエストを変更せず、そのままの形でサーバに送信する。非透過型プロキシはクライアントのリクエストを何らかの形で変更する。非透過型プロキシは追加サービスのために使用されることがあり、多くの場合、サーバの取得速度を向上させるのに利用される。

 Web開発者は以下の目的でプロキシを使用できる。

  • キャッシュ
    • キャッシュサーバはWebページやその他のインターネットコンテンツをプロキシサーバに保存し、コンテンツの取得速度を向上させ、サイトの帯域幅の需要を低減する。
  • 認証
    • プロキシはアプリケーションやオンライン情報へのアクセス権限を制御するために使用される場合がある。
  • ログ
    • ログは、サーバにリクエストを送信したクライアントのIPアドレスなど、履歴データを保存するために使用される。
  • Webフィルタリング
    • フィルタリングは、セキュリティを脅かす可能性があるWebページや不適切なコンテンツを含むWebページへのアクセスを制御する。
  • 負荷分散
    • クライアントからサーバへのリクエストは、1つのサーバだけではなく、負荷分散を使用して複数のサーバで処理することができる。

HTTPSとHTTPの違い

 HTTPSは、HTTPのより安全なバージョンだ。HTTPに続くSは「secure」(安全)を意味する。1994年、Webブラウザ開発企業Netscape Communicationsによって1994年に「SSL 1.0」(Secure Sockets Layer)プロトコルが開発された。SSL 1.0自体は正式に公開されなかったが、その後「SSL 2.0」、「SSL 3.0」と発展し、現在ではTLS(Transport Layer Security)へと置き換えられている。2000年、HTTPSはIETF(Internet Engineering Task Force)はRFC2818(HTTP over TLS)を発表し、HTTPをTLSで保護する方法を文書化した。

 HTTPSは、トランスポート層(レイヤー4)でSSLまたはTLSを使用し、HTTP通信を暗号化する。概念的には、HTTPSはHTTP/TCPに似ているが、HTTPが平文でデータを転送するのに対し、HTTPSはクライアントのリクエストとWebサーバのレスポンスを暗号化することで、第三者がデータを盗聴したり改ざんしたりすることを防ぐ。さらに、HTTPSは認証機能を提供することで、中間者攻撃(クライアントとサーバの間に攻撃者が割り込み、やりとりされるデータに対して不正操作を実施する攻撃)からの保護も可能にする。

 HTTPSは追加のセキュリティ層と信頼性を提供し、ユーザーデータを保護することで、Webサイトの信頼性向上にも寄与する。Googleは2014年に「HTTPSをランキングシグナルとして使用する」と発表しており、HTTPSを導入することで、検索結果ページ(SERP)でのランキングが上昇し、サイトの検索エンジン最適化(SEO:Search Engine Optimization)にもプラスの影響があるとされている。これらの理由から、HTTPからHTTPSへの移行は推奨されている。

関連キーワード

アプリケーション | Webサイト


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る