Webアプリケーションにおけるサーバーサイド
改めてサーバーサイドの中身についてまとめてみます。
クライアントサイドとサーバーサイド
まず、クライアントとはWebアプリケーションを利用する側、つまりブラウザを通してリクエストを送っている私たちのことです。そして、クライアントが利用する領域、つまりWebアプリケーションの見た目や表示するブラウザの事をクライアントサイドといいます。
一方、サーバーはサービスを提供している側のコンピューターの事です。インターネットを介してクライアントからリクエストを受け取り、それに応じたレスポンスを返します。Webアプリケーションが存在する領域をサーバーサイドといい、それぞれ異なる役割を持ったサーバーで構成されています。
サーバーサイドの中身
クライアントからのリクエストを処理するサーバーサイドは3層構造になっています。
このサーバーの構造は、Web3層アーキテクチャと呼ばれています。
-
ウェブサーバー
クライアント側からのリクエストを最初に受け取るのはここです。
HTMLファイルやCSSファイル、画像などの静的コンテンツが納められています。
レスポンスを返すためにデータベースとやり取りする必要のない(=静的コンテンツ)場合は、この時点でウェブサーバーからレスポンスが返されます。
一方、検索のようにデータベースから情報を取得する必要がある(=動的コンテンツ)場合、アプリケーションサーバーへリクエストを渡します。 -
アプリケーションサーバー
アプリケーションサーバー内にはPHP、Java、Ruby、Pythonなどのサーバーサイド言語でプログラミングされたWebアプリケーション本体が納められています。アプリケーションサーバーはWebアプリケーションにリクエストを渡し、Webアプリケーションは必要に応じてデータベースとやり取りを行い動的コンテンツを生成します。
生成された動的コンテンツはアプリケーションサーバーを通じてウェブサーバーへレスポンスとして渡されます。 -
データベースサーバー
データを一元管理し、データの保存や更新・バックアップする役割を担うのがデータベースサーバーです。また、Webアプリケーションからの要請に応じてデータの検索や更新(追加・修正・削除)を行い、その結果を返します。
Discussion