「HTTP」とは何か? ブラウザとWebサーバをつなぐ“通信ルール”を理解する:「HTTP」の基本と進化【前編】
Webページを表示するたびに、その裏で動いているのが「HTTP」だ。インターネット通信の基本であるこのプロトコルは、WebブラウザとWebサーバ間の情報のやりとりをどのように支えているのか。
「HTTP」(Hypertext Transfer Protocol)は、特にWebサーバとクライアント(Webブラウザ)の間で情報をどのようにやりとりするかを定めた通信プロトコルのことだ。Web(World Wide Web)の考案者であるティム・バーナーズ=リー氏が1989年から1991年にかけて開発したHTTPは、アプリケーション層(OSI参照モデルの第7層)に位置する。「HTTP/3」以前のバージョンは、TCP/IP(Transmission Control Protocol/Internet Protocol:通信を成立させるための基本プロトコル群)上で動作していた。
HTTP/3は2022年6月に公開されたバージョンだ。これは「HTTP/2」から大幅に改善されているが、HTTP/2は依然として多くのWebサイトで使用されており、主要なWebブラウザも引き続きHTTP/2をサポートしている。
HTTPは何に使われるのか
エンドユーザーがインターネットでWebサイトを閲覧(いわゆるネットサーフィン)するとき、Webブラウザは特定のWebページや情報をサーバに要求する。このときユーザーは、意識することなくHTTPを間接的に利用している。Webブラウザが要求するのは、テキスト、画像、音声、動画といったマルチメディアファイルを含む多様なWebリソースであり、これらは全てHTTPを介して転送され、Webブラウザに表示される。
HTTPは、WebサーバとWebブラウザの間で情報をやりとりする際に、標準化された方法で通信を行う。これにより、WWW上の情報交換の基盤を担っている。
現在でも複数のバージョンのHTTPが利用されている。2015年に登場した「HTTP/2」は、「HTTP/1.1」の後継バージョンであり、Webページの読み込み速度を大幅に向上させた。これは特に、複雑なWebアプリケーションやリッチなページ構成にとって有用だ。2022年6月には、HTTP/3が登場した。HTTP/2の後継であるHTTP/3は、より高いパフォーマンスや通信の信頼性、Webコンテンツ配信の効率化を実現しており、セキュリティ強化やユーザー体験の向上にもつながっている。また、Webサイト運営者にとっては、ネットワークリソースの最適化やメンテナンスの簡素化にも役立つ。
HTTPはどのように機能するのか
Webページの構成要素であるファイル類などのリソースは、WebブラウザとWebサーバの間でインターネットを介してHTTPでやりとりされる。Webブラウザは「HTTPクライアント」として動作し、Webサーバに対して情報をリクエスト(要求)する。ユーザーがURLを入力したり、Webページ内のハイパーリンクをクリックしたりすると、WebブラウザがHTTPリクエストを生成して送信する。このリクエストには、HTTPのバージョン、HTTPメソッド(GETやPOSTなど)、リクエストヘッダ、必要に応じてHTTPボディーといった情報が含まれている。リクエストは、URLから得られるIPアドレス(インターネット上の宛先)に向けて送信される。
Webサーバ側には、「HTTPデーモン」(httpd)と呼ばれる常駐プログラムがあり、クライアントからのHTTPリクエストを待ち受けて処理する。サーバは、リクエストに応じたWebファイルや関連リソースをHTTPレスポンスとして返送する。レスポンスには、HTTPステータスコード(200や404など)やレスポンスヘッダ、必要に応じてHTTPボディーが含まれる。
こうして送られてきたレスポンスの内容、例えばテキスト、画像、レイアウト情報などを、Webブラウザが受け取り、統合して表示することで、ユーザーは一つのWebページとして閲覧できるようになる。
HTTPの例
エンドユーザーが「https://www.techtarget.com」を訪問したいとする。この場合、WebブラウザのアドレスバーにURLを直接入力するか、Googleなどの検索エンジンに「TechTarget」あるいは「TechTarget.com」と入力することになる。いずれの方法でも、ユーザーのコンピュータはそのWebアドレスに対応するWebサーバに対して、HTTPの「GET」リクエストを送信する。
このリクエストはHTTPを使って送られ、例えばログインページや、そのページの外観を構成するHTML(HyperText Markup Language:ハイパーテキストマークアップ言語)のコードなどを取得したいという意図が、TechTargetのWebサーバに伝えられる。
このとき、HTMLコードの本体はサーバからHTTPレスポンスとして送信される。一方で、ページ内に表示される画像や動画などのコンテンツは、それぞれ別個のHTTPリクエストを通じて取得される。ページに画像が多数含まれる場合、それだけリクエストの数も増え、Webサーバの処理負荷が高まる。その結果、ネットワークの遅延が発生し、ブラウザによるページの読み込みに時間がかかることがある。
次回は、HTTPにおけるリクエストとレスポンスの具体的な流れを解説する。
Copyright © ITmedia, Inc. All Rights Reserved.