Webの3層構造とは?各層の役割と処理の流れをわかりやすく解説

目次

はじめに

「Webの3層構造って、具体的に何を3つに分けているの?」
「Webサイトを開いたとき、ブラウザからサーバーまで何が起きているのか分からない」と迷っていませんか。

Webシステムの構成図を見て、画面を表示する部分とデータを処理する部分が別になっていることに気づいても、それぞれがどの役割を担当しているのか判断しにくいですよね。

この記事では、プレゼンテーション層・アプリケーション層・データ層それぞれの役割と、ユーザーがページを開いてからデータが返ってくるまでの処理の流れを順を追って説明します。

Webの3層構造とは?

Webの3層構造は、Webサービスの処理を「画面を表示する部分」「処理を実行する部分」「データを保存する部分」に分けて構成する考え方です。

ここでは、プレゼンテーション層・アプリケーション層・データ層の役割と、処理を3つの層に分ける理由を順番に説明します。

プレゼンテーション層・アプリケーション層・データ層に分ける構成

Webの3層構造では、処理をプレゼンテーション層、アプリケーション層、データ層の3つに分けます。

プレゼンテーション層は画面表示や入力の受付、アプリケーション層は入力内容に応じた処理を担当します。

データ層はデータベースなどを使い、ユーザー情報や商品情報といったデータを保存・取得する役割を持ちます。

3つの層に役割を分ける理由

3つの層に役割を分けるのは、画面表示や処理、データ保存をそれぞれ変更しやすくするためです。

たとえば画面のデザインだけを変更する場合は、データベース側への影響を抑えながら修正できます。

役割を分けておくことで変更箇所も把握しやすくなり、機能追加や修正を進めやすくなります。

Webの3層構造を構成する各層の役割

Webの3層構造では、Webサービスの処理をプレゼンテーション層・アプリケーション層・データ層の3つに分け、それぞれ異なる役割を担当します。

ここでは、各層が担当する具体的な処理を、画面表示からデータの保存・更新まで順番に説明します。

プレゼンテーション層|画面表示とユーザーからの入力を扱う

プレゼンテーション層は、Webブラウザに画面を表示し、ユーザーからの入力を受け取る層です。

ログイン画面で入力されたメールアドレスやパスワードなどをアプリケーション層へ渡し、処理結果を受け取って画面に表示します。

ユーザーが直接操作する部分を担当する層と考えると分かりやすいでしょう。

アプリケーション層|処理やビジネスロジックを実行する

アプリケーション層は、プレゼンテーション層から受け取った内容をもとに、必要な処理を実行する層です。

たとえばログインではデータ層へ情報の照合を依頼して認証を行い、商品の注文では在庫や金額を確認して注文処理を進めます。

処理が終わると、その結果をプレゼンテーション層へ返します。

データ層|データの保存・検索・更新を行う

データ層は、データベースなどを使ってWebサービスに必要な情報を管理する層です。

アプリケーション層からの要求に応じてユーザー情報や商品情報を検索し、必要なデータを返します。

また、新しい情報の保存や住所・在庫数などの更新も行い、データに関する処理をまとめて管理します。

Webの3層構造ではどのように処理されるのか

Webの3層構造では、ブラウザから送られたリクエストが各層を順番に通り、必要なデータを取得してレスポンスを返します。

ここでは、ブラウザからリクエストを送信してから、処理結果がブラウザへ返されるまでの流れを順番に説明します。

ブラウザからWebサーバへリクエストを送る

ブラウザでWebページへアクセスすると、WebサーバへHTTPリクエストが送信されます。

WebサーバはURLなどを確認し、必要に応じて処理をAPサーバへ渡します。

HTMLや画像などWebサーバだけで返せるファイルの場合は、そのままブラウザへレスポンスを返します。

ブラウザからWebサーバーへ通信するときに、HTTPがどのような仕組みでリクエストとレスポンスをやり取りしているのかも確認しておくと、処理の流れをつかみやすくなります。
▶HTTPリクエストとレスポンスとは?仕組みと通信の流れをわかりやすく解説

APサーバで必要な処理を実行する

APサーバはWebサーバからリクエストを受け取り、ログイン情報の照合や注文金額の計算など、Webサービスに必要な処理を行います。

データの検索や更新が必要な場合は、DBサーバへ処理を依頼します。

DBサーバから受け取ったデータをもとにレスポンスを作成し、Webサーバへ返します。

DBサーバからデータを取得してブラウザへ返す

DBサーバはAPサーバからの要求に応じてデータを検索し、必要な情報をAPサーバへ返します。

APサーバで作成された処理結果はWebサーバを経由してブラウザへ送られ、Webページとして表示されます。

このように、各サーバが役割を分担しながらリクエストを処理し、必要な情報をユーザーへ返します。

Webの3層構造とWebサーバ・APサーバ・DBサーバの関係

Webの3層構造を理解するには、3つの層とWebサーバ・APサーバ・DBサーバがどのように対応しているのかを整理することが大切です。

ここでは、それぞれの層とサーバがどのようにつながり、どの処理を受け持つのかを順番に説明します。

プレゼンテーション層とWebサーバの関係

プレゼンテーション層では、WebサーバがブラウザからHTTPリクエストを受け取り、HTMLやCSS、画像などを返します。

静的なファイルはそのままブラウザへ送り、処理が必要な場合はAPサーバへリクエストを渡します。

Webサーバは、ブラウザとアプリケーション層をつなぐ役割を担っていると考えると分かりやすいでしょう。

Webサーバーが具体的にどのような処理を担当し、APサーバーと何が違うのか迷った場合は、役割の違いを整理しておくと理解しやすくなります。
▶WebサーバーとAPサーバーの違いとは?役割と処理の流れをわかりやすく解説

アプリケーション層とAPサーバの関係

アプリケーション層では、APサーバがWebサーバから受け取ったリクエストをもとに、ログイン情報の確認や注文金額の計算などを行います。

データが必要な場合はDBサーバへ取得や更新を依頼し、その結果を使ってブラウザへ返す内容を作成します。

APサーバは、Webサービスに必要な処理をまとめて担当する役割があります。

データ層とDBサーバの関係

データ層では、DBサーバがユーザー情報や商品情報、注文情報などを管理します。

APサーバから要求を受けると、必要なデータを検索して結果を返したり、新しいデータを保存したりします。

Webサービスで使用するデータの保存・検索・更新を担当するのが、DBサーバの主な役割です。

Webを3層構造にするメリット

Webを3層構造にすると、画面表示・アプリケーション処理・データ管理を分けて扱えるため、Webサービスの開発や運用を進めやすくなります。

ここでは、修正や機能追加のしやすさ、負荷分散と拡張のしやすさ、障害発生時の切り分けやすさという3つのメリットを順番に説明します。

層ごとに修正や機能追加をしやすい

3層構造では、画面表示、アプリケーション処理、データ管理を分けるため、変更する部分を特定しやすくなります。

たとえば画面のレイアウトを変更する場合は、プレゼンテーション層を中心に修正でき、ほかの層への影響を抑えられます。

新しい機能を追加するときも必要な層を中心に対応できるため、修正範囲を広げずに進めやすくなります。

負荷を分散して拡張しやすい

3層構造では、負荷が高くなった層に合わせてサーバーを増やすなど、個別に対応しやすくなります。

たとえばWebサーバーへのアクセスが増えた場合は、複数台に分けてリクエストを処理する方法があります。

APサーバーやDBサーバーについても、負荷の状況に合わせて処理能力を増強しやすい点がメリットです。

障害の影響範囲を切り分けやすい

3層構造では役割が分かれているため、障害が発生したときに問題のある部分を確認しやすくなります。

Webサーバーへ接続できるか、APサーバーで処理できているか、DBサーバーからデータを取得できるかと順番に確認できます。

どの層で問題が起きているのかを絞り込みやすくなり、原因の調査や復旧を進めやすくなります。

Webを3層構造にするデメリット

Webを3層構造にすると、処理を分けて管理できる一方で、サーバーや設定項目が増えるため構成が複雑になりやすくなります。

ここでは、3層構造を採用することで生じやすい構成の複雑化と、構築・運用に必要なコストの増加について説明します。

システム構成が複雑になりやすい

3層構造では、Webサーバー、APサーバー、DBサーバーを分けるため、1台のサーバーで構成する場合より設定項目が増えます。

各サーバー間で正しく接続できるか確認する必要があり、設定を変更した際は前後の層への影響にも注意が必要です。

サーバーや接続設定が増えるほど、システム全体の構成を把握する作業も複雑になりやすくなります。

構築や運用に必要なコストが増える

3層構造では複数のサーバーを用意するため、構築に必要な作業や費用が増える場合があります。

運用開始後も、各サーバーの監視やアップデート、障害対応などを行わなければなりません。

そのため、規模によってはサーバー費用だけでなく、運用や管理にかかる負担も大きくなる点に注意が必要です。

Webの2層構造と3層構造の違い

Webのシステム構成を比較するときは、2層構造と3層構造で処理をどのように分けているのかを確認することが重要です。

ここでは、それぞれの構成と処理の分け方を比較し、3層構造が変更や拡張に対応しやすい理由を順番に説明します。

2層構造はクライアントとデータベースを中心に構成する

2層構造では、クライアントとデータベースを直接つなぎ、画面表示や処理をクライアント側で行います。

中間のアプリケーション層を設けないため構成はシンプルですが、画面処理や業務処理がクライアント側に集まりやすくなります。

そのため、処理を変更するときはクライアント側の修正範囲が広くなる場合があります。

3層構造は処理を分離して変更や拡張に対応しやすくする

3層構造では、画面表示、アプリケーション処理、データ管理を3つの層に分け、それぞれの役割を分離します。

画面だけを変更したり、負荷が高いサーバーを個別に増強したりと、必要な部分に合わせて対応しやすくなります。

2層構造より構成は複雑になりますが、変更や機能追加、システムの拡張を進めやすい点が特徴です。

2層・3層以外の構成も含めて比較したい場合は、Webシステムで使われる代表的な構成の違いを確認しておくと選びやすくなります。
▶Webシステムの構成とは?代表的な種類とサーバー構成の違いをわかりやすく解説

まとめ

Webの3層構造は、画面表示を担うプレゼンテーション層、処理を行うアプリケーション層、データを管理するデータ層に役割を分ける構成です。

それぞれを分離することで、必要な部分を修正・拡張しやすくなる一方、サーバーや接続設定が増えるため、構築や運用が複雑になる場合もあります。

Webシステムの構成を見るときは、「画面表示」「処理」「データ管理」の3つに分けて考えると、それぞれのサーバーが何を担当しているのか整理しやすくなります。

まずはWebサーバー・APサーバー・DBサーバーの役割と処理の流れを結び付けながら確認してみましょう。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次