
Webサーバーの処理について詳しく説明します
前回の記事「【PHPプログラミング入門講座】サーバーについて理解しよう」では、いろいろなサーバー(サーバーソフトウェア)の種類について紹介しました。
今回は、その中で今後PHPプログラミングを理解するために最も関係があるWebサーバーにフォーカスして説明します。
ブラウザとWebサーバー間の処理の流れ
Webサーバー中身を図解化して、ブラウザのアドレスバーにURL「http://www.example.com/mydir/hoge.html」を入力した場合の処理について説明します。
【STEP1】HTMLファイルを取得する

まずは、最初にURLで指定したHTMLファイルを取得します。
上図はその処理の流れを描いた図です。
(1)入力したURL「http://www.example.com/mydir/hoge.html」をもとに、ブラウザは対象のWebサーバー「www.example.com」にアクセス(リクエスト)します。
(2)-(3)ブラウザからのリクエストを受信したWebサーバーはサーバー内の「/mydir/」ディレクトリ(※注1)内にあるファイル「hoge.html」を見つけてデータを読み取ります。
(4)そして「hoge.html」をレスポンスデータとして返します。
<用語説明>
前回の記事「【PHPプログラミング入門講座】サーバーについて理解しよう」で説明しましたが、念のため書いておきます。
- リクエスト:データの送信処理のこと。
- レスポンス:データの返信処理のこと。
- リクエストデータ:送信するデータのこと。
- レスポンスデータ:返信するデータのこと。
注1:「ディレクトリ」と「フォルダ」は同じ意味です。Linux系、UNIX系のOSの場合は「ディレクトリ」という言葉を使い、Windows系のOSの場合は「フォルダ」という言葉を使うのが一般的です。それぞれの文化の違いで呼び方が異なるだけです。
【STEP2】HTMLのソースを分析し、その中に記述されている各ファイルを取得する

ブラウザは受信した「hoge.html」のソースを分析し、その中にCSS / JS / 画像 / 動画 などページを表示するために必要な要素のURLを検出した場合、さらにそれらを取得するためにWebサーバーにアクセス(リクエスト)します。
例えば、上図は例として、CSSファイル「style.css」を取得する流れを描いています。
(1)-(2)取得した「hoge.html」のソース内に「http://www.example.com/mydir/style.css」が書かれていたのを検出し、再びWebサーバーにアクセス(リクエスト)します。
(3)-(4)ブラウザからのリクエストを受信したWebサーバーはサーバー内の「/mydir/」ディレクトリ内にあるファイル「style.css」を見つけてデータを読み取ります。
(5)そして「style.css」をレスポンスデータとして返します。
(6)同様にhoge.htmlのソースに書かれている他のファイルも取得し、最終的に取得した多数のファイルを用いてWebページが表示されます。

おわりに
以上のように、Webページが表示される数秒の間に、Webページの表示に必要な全ファイルを取得するために、何十回もブラウザとWebサーバーの間で通信(リクエスト&レスポンス)処理が繰り返されているのです。
ちょっと驚きましたか?(笑)
PHPプログラミング入門講座 〜 全記事一覧 〜
- PHPで開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- 現在のページ:Webサーバーの処理について詳しく説明
- PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 比較演算子
- 論理演算子
- 条件分岐 (switch文)
- 三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- continue
- 連想配列
- 連想配列のループ処理