Web三層構造とは?インターネットが表示される仕組み徹底解説!

インターネットはどうやって表示されているの?

まず、インターネットが表示されるページは「静的ページ」「動的ページ」の二つに分けられます。

青矢印:静的ページ オレンジ矢印:動的ページ

① ユーザーがURLをクリックするとWebサーバにつながります。

⑥ Webサーバがファイルを探し出してブラウザに返します。

②~⑤PHPなどのブラウザで解釈できないプログラムが含まれていた場合は、AP(アプリケーション)サーバに接続し、HTMLなどの形式に変換し返します。

Webサーバに全てのデータを保管する事も出来ますが、セキュリティの為に記事内容などのデータはDBサーバで保管されていることが多いです。

サーバ:server

分散処理システムにおいて、client からの要求に応じてサービスを供給する機器

(引用:研究社 英和コンピューター用語辞典)

静的ページ

Webサーバに入っているHTML、CSS、Javascript、画像ファイルで構成されるページ。

ユーザーがURLをクリックするとWebサーバからデータを探し出し、そのままブラウザに返すので動的ページに比べて表示速度が速い。

動的ページ

ユーザーがアクセスしてきたときにページを都度作成して表示するため、静的ページに比べて表示に時間がかかる。

昔は静的ページしかありませんでしたが、近年インターネットの表示速度が年々上がっており、最近のWebサイトの殆どが動的ページになります。

①URLを通してWebサーバにリクエスト・要求を行う。

②URLを解釈し、リクエストされたファイルを探す。ファイルがJavaやRuby、phpプログラムならAPサーバに解釈・実行を要求する。

③②で要求されたプログラムを解釈する。データの保存、読み込みが必要な場合はDBサーバにデータ管理を要求する。

④APサーバからのデータの保存、読み込みの要求に応答。必要なデータを探しAPサーバに返す。

⑤結果をブラウザが解釈できるHTMLなどの形式にして返す。

⑥ブラウザに表示

まとめ

  • Webサーバー:静的ファイルのレスポンス(動的ファイルの場合はAPサーバに受け渡す)
  • APサーバー:動的ファイルのレスポンス
  • DBサーバー:必要なデータの提供

つまり、

  • 静的コンテンツ:Webサーバ内のディスクに保管
  • 動的コンテンツ:ユーザーからリクエストされる度に新たに作成される。

Web三層構造について

Web三層構造とは?

三つのサーバーから構成されるWEBアプリケーションの構成のこと。

以前は、WebサーバでJava、PHP、Rubyなどの処理を含めたすべての処理を行っていました(二層構成)。

現在、殆どのWebサービスの設計は「Web三層構成」で作られています。

Web二層構成

Web三層構成

webサーバ

概要

Webブラウザからのアクセス要求を処理します。

動的な処理が必要な場合には、APサーバへリクエストを送り、受け取った結果をWebブラウザに返します。

Webブラウザからの要求や応答はHTTPというプロトコルに基づいて行われます。そのため「HTTPサーバ」とも呼ばれます。

※プロトコル:やり取りの方法についてのルール

WEBサーバの機能を提供するWEBサーバソフト

Apache、nginx、IISなど

(Apacheは「楽天市場」、nginxは「Yahoo Japan」、IISは「Microsoft」で利用されています。)

Webアプリケーションサーバ

概要

AP(アプリケーション)サーバと略される。

Webアプリケーションの機能を提供するもので、htmlファイルや画像ファイルなど、各種ファイルをプログラムで「生成」するサーバー。

Webアプリケーション

パソコンにインストールしなくても、Webサイトにアクセスして利用できるアプリケーションプログラムのこと。

Webサーバから受けたリクエストをもとに、バックエンドで動作するJavaやphp、Rubyなどを実行したり、必要に応じてデータベースへのアクセスを行い、処理を行います。

Webサーバから受け取ったリクエストをもとに、Javaやphp、Rubyなどを実行し、Webサーバに結果を返します。

Webアプリケーションの機能を提供するWebアプリケーションソフト

Javaのアプリケーションサーバ:Tomcat、GlassFishなど
Rubyのアプリケーションサーバ :Unicornなど

DBサーバー

アプリケーションで参照するデータを保管する。

データベース管理システム

MySQL、SQLite、Oracle DBなど

Qiita|【DBまとめ】MySQLからPostgreSQL,SQLiteまで

WordPressでWebサイトが表示される仕組み

静的ページ

動的ページ(WordPress)

①URLを通してWebサーバにリクエスト・要求を行う。

②URLを解釈し、リクエストされたファイルを探す。PHPファイルの解釈・実行を行う。
WebサーバにインストールしているWordPressはPHPで動くアプリケーション。

③②で要求されたプログラムを解釈する。DBサーバで保管されている記事、カテゴリ等の内容を参照し、APサーバに返す。

④APサーバからの読み込みの要求に応答。必要なデータを探しAPサーバに返す。

⑤結果をブラウザが解釈できるHTMLなどの形式にして返す。(PHPファイルをまとめて一枚のHTMLとして抽出する)

⑥応答

サーバはロリポップ!を使用

Webサーバー:Apacheを使用
APサーバー:Perl、Ruby、Python、PHPに対応
DBサーバー:MySQL

ロリポップ!レンタルサーバー|サーバーの仕様

ロリポップ!はApacheを使用している
Apacheやnginx、IISはWEBサーバの機能を提供するWEBサーバソフトです。
Apacheは世界中で最も使用されています。WordPressはPHPで動くアプリケーションWordPressはDBサーバのMySQLにデータを保存している
MySQLはデータベース管理システムの一つ

Web三層構造の目的

セキュリティを高める

一般的な企業では、DBサーバの中に顧客情報が保存されており、万が一この情報が流出してしまうと大問題になります。

Web、AP、DBが一台にまとまっていると、ユーザーから直接DBサーバにアクセスしやすくなってしまいます。

コストを抑える

それぞれの層が1つのソフトウェアである場合、システムを更新する場合に、いずれかの層のみに問題があった場合でも、全てを変更する必要があり、莫大なコストがかかってしまいます。3層構成にすることで、それぞれの機能を分離し、変更できるため、更新のコストを削減することが可能になります。

処理速度の向上

以前はWEBサーバとアプリケーションサーバが一緒になっていました(二層構成)。

静的ファイル(HTML、CSS、画像など)はWebサーバ、動的ファイルを使用する場合のみアプリケーションサーバに繋げることで処理速度がアップしました。

管理がしやすい

サーバに不具合が発生した際、一台のサーバーにWeb、AP、DBがまとまっているとシステムが全停止になり、復旧するまでサーバに一切アクセス出来なくなります。

三つに役割を分けることで、全停止ではなく一部機能の停止で済みます。

参照・参考記事

ミドルウェア(Web、AP、DB)について知ろう

超絶初心者のためのサーバとクライアントの話

アプリケーションサーバってなに?Webサーバとの違い

データベースの基本構造とWordPressのテーブル設計に見るデータモデリング

WordPressとApache、PHP、MySQLの関係

スポンサーリンク
レクタングル広告(大)
レクタングル広告(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル広告(大)