HTTP - Webの情報をやり取りするプロトコル

HTTP - Webの情報をやり取りするプロトコル

普段何気なく閲覧しているWebサイトですが、
WebブラウザとWebサーバの間では、
HTTP(HyperText Transfer Protocol)というプロトコルを
使って情報のやり取りを行っています。

ユーザがWebブラウザからWebアクセスを開始すると、
WebブラウザはWebサーバに情報の要求を行います。
要求を受けたWebサーバは、その情報をWebブラウザへ返信します。
情報を受信したWebブラウザは、その情報をもとに内容を表示します。

Webページを表示するまでの流れ

実際にWebページを表示させる流れを見ていきましょう。

WebブラウザにURLを入力

Webページを見るときに、Webブラウザのアドレスバーにアドレスを
入力します。
このアドレスをURL(Uniform Resource Locator)と呼びます。
URLの基本的な既述方法は「http://ドメイン名/フォルダ名/ファイル名」
というように既述されます。

名前解決を実施

WebブラウザにURLを入力すると、Webブラウザは
URLの「:」以下に書かれたWebサーバの指定した場所にアクセスして、
情報を取得しようとします。
Webブラウザに「http://itbook.info/index.html」と入力した場合、
まずDNSを使用してドメイン名からIPアドレスを調べます。 この動作を「名前解決」と呼びます。
名前解決はWebブラウザが行う訳ではなく、OSが提供しているリゾルバが
担当します。

HTTPによる通信を開始

無事に名前解決ができたら、Webブラウザは該当のIPアドレスの
Webサーバへアクセスします。
インターネットはTCP/IP通信が基本。 当然WebアクセスもTCP/IP通信で行います。

そこでまずは、WebサーバとTCPのコネクションを確立します。
Webブラウザから、OS上のTCPを処理するソフトへ
「○○というデータが欲しい」という「HTTPリクエストメッセージ」を渡します。
それを受けて、TCP処理ソフトが、Web(HTTP)のポート番号「80」宛に
TCP接続を行います。

受信側(Webサーバ)では、データを受信すると、
パケットからHTTPリクエストを取り出し、
Webサーバへと渡します。

HTTPリクエストを受け取ったWebサーバは、
HTTPリクエストの中身を確認して該当の情報(HTMLデータ)を
HTTPレスポンスで返信します。

このようにHTTPは、リクエスト(要求)とレスポンス(応答)の2つの
メッセージでやりとりを行います。

WebブラウザからWebサーバへのメッセージが「HTTPリクエスト」
WebサーバからWebブラウザへのメッセージが「HTTPレスポンス」です。

HTMLデータを受け取ったWebブラウザは、
中身を上から順番に解析していきます。
画像や動画などを掲載しているWebサイトの場合、
HTMLデータの中に画像や動画が保存されている
Webサーバへのリンクの情報(URL)が記載されています。

HTMLデータの中にURLが見つかった場合、
そのURLの情報をWebサーバにHTTPリクエストを
送信して情報を取得していきます。
画像や動画などを多く掲載しているWebサイトの場合、
この動作を繰り返します。

このようにHTTPリクエストとHTTPレスポンスを繰り返して
取得した情報を組み合わせて、最終的にWebページを表示します。

HTTPのやりとりについて

関連記事