【6日でできるHTML&CSS入門】Webアプリの仕組み

 近年、私たちはWebブラウザを通じてさまざまなサービス―たとえばSNS、ネットバンキング、ショッピングサイトなど―を利用しています。これらのサービスを実現する仕組みが「Webアプリケーション(Webアプリ)」です。
Webアプリは、単なる情報の表示だけでなく、ユーザーごとに内容が変わるページを動的に生成し、双方向のやりとりを可能にします。
 本記事では、Webアプリの基本構造や主要な技術要素、裏で支えるデータベースや代表的なシステム構成について、体系的に解説します。

1.WebアプリとCMS

1.1. Webアプリとは何か

項目説明
静的WebページHTMLで作られた固定の内容だけを表示するページ。例:企業の案内ページなど。
動的Webページユーザーごと・状況ごとに内容が変化するページ。例:SNSのタイムライン、検索結果ページなど。
サーバサイドWebサーバ上で動作し、ユーザーのリクエストに応じてページやデータを生成する処理。代表:PHP, Python, Rubyなど。
フロントエンドユーザーのWebブラウザ側で動作し、画面の表示や操作、インタラクションを担当。代表:HTML, CSS, JavaScript。
CRUDデータを扱う基本操作。C:作成(Create), R:読み取り(Read), U:更新(Update), D:削除(Delete)。

 Webアプリケーションは、従来の静的Webページとは異なり、ユーザーの入力や操作に応じてサーバサイドのプログラムが実行され、内容が変化します。
たとえばSNSで投稿やコメントができるのは、サーバで処理し、結果を動的にページに反映しているからです。

1.2. サーバサイドとフロントエンドの違い

サーバサイドフロントエンド
サーバ上でプログラムが動くユーザーの端末(ブラウザ)で動く
データベース操作やページ生成を担当画面表示やインタラクションを担当
例:PHP, Python, Java, Ruby例:HTML, CSS, JavaScript

 サーバサイドでは、ユーザーのリクエスト内容に応じて必要な処理を行い、結果をHTMLとしてブラウザに返します。
一方フロントエンドは、JavaScriptなどを使って画面の動きやユーザー操作への応答を実現します。

1.3. Webアプリの基本的な流れ(動的Webページの例)

流れ内容
1ユーザーがWebページを開く(リクエストを送信)
2Webサーバがリクエストを受け取る。
3サーバサイド言語(PHPなど)がプログラムを実行
4必要に応じてデータベースから情報を取得・更新
5実行結果をHTMLにしてWebブラウザへ返す。
6ブラウザがページを表示し、必要に応じてJavaScriptが動作

図示例
クライアント(PC/スマホ) ⇄ リクエスト ⇄ Webサーバ ⇄ サーバサイドスクリプト(PHP等) ⇄ データベース⇄ HTMLレスポンス ⇄ クライアント(ブラウザ表示)

2.Webアプリの実現技術と仕組み

2.1. サーバサイド言語と特徴

言語名主な特徴と用途
PHPWebアプリ開発に特化。構文がシンプルで初心者にも学びやすい。LAMP構成で多用。
PythonWebだけでなく幅広い用途。Django, FlaskなどWebフレームワークが豊富。
Rubyシンプルな構文。Ruby on RailsなどWebフレームワークで利用。
Java大規模Webアプリや業務システムで利用。セキュリティや堅牢性が高い。

PHPはWebアプリケーションのために設計された言語で、文法も比較的分かりやすいのが特長です。

2.2. フロントエンド技術とJavaScript

技術主な役割
HTMLWebページの構造を作る
CSSWebページの見た目やデザインを指定する
JavaScriptページの動きを制御し、インタラクティブな機能を実現する
Ajaxページを再読み込みせずにサーバと通信し、部分的に内容を更新する技術

JavaScriptはブラウザ上で動作し、HTMLを操作したりサーバとの通信(Ajax)も担当します。

2.3. LAMP構成

項目役割
LinuxOS(オペレーティングシステム)
ApacheWebサーバ
MySQLデータベース
PHPサーバサイドプログラム言語

LAMP(ランプ)構成は、Webアプリ開発の基本ともいえるオープンソースソフトウェアの組み合わせです。
他にも、OSやWebサーバ、DB、言語の組み合わせは用途に応じて様々です。

2.4. SQLとリレーショナルデータベース

項目説明
SQLデータベースを操作するための標準言語。データの登録、取得、更新、削除を行う。
リレーショナルDB表形式でデータを管理する。複数のテーブル間で関連付け可能。
有名なDBMySQL, Oracle, PostgreSQL, SQLiteなど。

リレーショナルデータベース(RDB)は、大量データを効率的に保存・検索できる仕組みです。
SQLを使ってデータ操作を行います。中でもMySQLはWebアプリでよく使われています。

まとめ

Webアプリは、

  • フロントエンド(ブラウザ)とサーバサイド(Webサーバ)の連携
  • データベースとの組み合わせ
    によって、ユーザーごとに内容が変わる動的なWebページを実現しています。

 現代のWebサービスの多くは、サーバサイドでの処理(PHPなど)、データベース(MySQLなど)、フロントエンド(HTML/CSS/JavaScript)の3つの要素が連携し合うことで成立しています。