3-2. クライアント側とサーバー側の処理

更新日:2025年12月7日

3-2. クライアント側とサーバー側の処理について解説します。
PHPとJavaScriptを理解する

※画像は生成AIによるイメージです。

Webアプリケーションは、クライアント側(ブラウザ)とサーバー側で役割分担して動作します。 この仕組みを理解することで、JavaScriptとPHPをどのように使い分けるべきかが明確になります。

処理の流れ

  1. ユーザーがURLにアクセス
  2. ブラウザがサーバーにリクエスト送信
  3. サーバー(PHP)が処理してHTMLを生成
  4. サーバーがHTMLをレスポンスとして返す
  5. ブラウザがHTMLを表示
  6. JavaScript がブラウザ上で実行

サーバー側処理(PHP)

特徴

  • ユーザーには見えない
  • データベースに直接アクセス可能
  • セキュアな処理が可能
  • ページ生成時に1回だけ実行

主な役割

処理内容 具体例
データベース操作 ユーザー情報の取得、保存
認証・認可 ログイン処理、権限チェック
ファイル操作 画像アップロード、CSVエクスポート
APIとの通信 外部サービスからデータ取得
メール送信 お問い合わせフォームから送信

クライアント側処理(JavaScript)

特徴

  • ユーザーのブラウザで実行
  • ソースコードが見える
  • リアルタイムな操作が可能
  • ページ読み込み後も動作継続

主な役割

処理内容 具体例
DOM操作 要素の表示/非表示、スタイル変更
イベント処理 クリック、スクロール、入力
バリデーション フォーム入力チェック
アニメーション スライドショー、トランジション
Ajax通信 ページ遷移なしでデータ取得

処理の分担例

ログインフォーム

処理 担当 理由
入力欄の空チェック JavaScript 即座にフィードバック
メール形式チェック 両方 UX向上とセキュリティ
パスワード照合 PHP セキュリティが必要
セッション作成 PHP サーバー側で管理
エラー表示 JavaScript 動的な表示

セキュリティの観点

重要な原則

「信頼できるのはサーバー側の処理のみ」

なぜサーバー側が安全か

  • ソースコードが見えない
  • ユーザーが改ざんできない
  • データベース接続情報を隠せる

パフォーマンスの観点

項目 サーバー側 クライアント側
処理速度 高性能サーバー ユーザーの端末依存
ネットワーク 通信が必要 ローカル処理
スケーラビリティ サーバー増強必要 ユーザー端末で分散
キャッシュ サーバー側キャッシュ ブラウザキャッシュ

実例:検索機能の実装

サーバー側(PHP)の役割

<?php
$keyword = $_GET['q'] ?? '';
$stmt = $db->prepare("SELECT * FROM products WHERE name LIKE ?");
$stmt->execute(["%{$keyword}%"]);
$results = $stmt->fetchAll();
header('Content-Type: application/json');
echo json_encode($results);
?>

クライアント側(JavaScript)の役割

document.getElementById('searchBox').addEventListener('input', async (e) => {
    const keyword = e.target.value;
    if (keyword.length < 2) return;
    const response = await fetch(`/search.php?q=${keyword}`);
    const results = await response.json();
    displayResults(results);
});

まとめ

サーバー側(PHP)は安全で確実な処理を、クライアント側(JavaScript)は快適なユーザー体験を提供します。 両者を適切に組み合わせることで、セキュアで使いやすいWebアプリケーションが実現できます。

免責事項
本コンテンツは2025年12月時点の情報に基づいて作成されている。最新の情報については公式ドキュメントを参照されたい。