普段何気なく閲覧しているWebサイトですが、
WebブラウザとWebサーバの間では、
HTTP(HyperText Transfer Protocol)というプロトコルを
使って情報のやり取りを行っています。
ユーザがWebブラウザからWebアクセスを開始すると、
WebブラウザはWebサーバに情報の要求を行います。
要求を受けたWebサーバは、その情報をWebブラウザへ返信します。
情報を受信したWebブラウザは、その情報をもとに内容を表示します。
実際にWebページを表示させる流れを見ていきましょう。
Webページを見るときに、Webブラウザのアドレスバーにアドレスを
入力します。
このアドレスをURL(Uniform Resource Locator)と呼びます。
URLの基本的な既述方法は「http://ドメイン名/フォルダ名/ファイル名」
というように既述されます。
WebブラウザにURLを入力すると、Webブラウザは
URLの「:」以下に書かれたWebサーバの指定した場所にアクセスして、
情報を取得しようとします。
Webブラウザに「http://itbook.info/index.html」と入力した場合、
まずDNSを使用してドメイン名からIPアドレスを調べます。
この動作を「名前解決」と呼びます。
名前解決はWebブラウザが行う訳ではなく、OSが提供しているリゾルバが
担当します。
無事に名前解決ができたら、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ページを表示します。