Webアプリ開発事始 第7回

Webアプリケーションの仕組みとデータベースの扱い 長谷川裕行
有限会社 手國堂

サーバーサイド・アプリケーション

ユーザーとアプリケーションとの、インタラクティブなやり取りの仕組みを見ておきましょう。Webアプリケーションにはサーバーサイドとクライアントサイドの2つの実行形態があります。まず、サーバーサイド・アプリケーションの基本的な仕組みを、検索エンジンを例に見ておきましょう。


- CGIはWebアプリの基本 -

Webアプリケーションには様々な動作環境があり、開発手段があります。しかし、先述したように<最後のところはHTML>ということになります。つまり、どのようなOSや言語を使っても、結局は「HTMLをどうやって生成するか」が問題となるのです。

Webアプリケーションにもいくつかの実行形態がありますが、CGIがその原点だと言えます。CGIでは、サーバー側のプログラムがクライアントに送信するHTMLデータを生成します。このあたりのメカニズムを、簡単に紹介しておきましょう。


- やり取りの手順 -

Webアプリケーションでは、ユーザーと何らかのやり取りを行う必要があります。サーバーサイド・アプリケーションの場合は、ユーザーの入力したデータを、サーバー側で処理します。その大まかな手順は、以下のようになります。

(1)ブラウザに入力用の画面を表示する
(2)ユーザーが入力操作を行う
(3)入力されたデータがサーバーに送信される
↑クライアント側の動作
--------
↓サーバー側の動作
(4)ユーザーの入力したデータを受け取る
(5)受け取ったデータを元に処理を行う
(6)処理結果をHTML化してクライアントに送信する


- 入力画面はフォーム機能で作る -

入力用の画面は、HTMLのフォーム機能で実現します。HTMLエディタやWordのHTML編集機能を使ったことのある人なら、Webページ上にテキストボックス、リスト、チェックボックス、ボタンなどの入力用アイテムを、簡単に表示できることはご存じでしょう。

これらフォームもHTMLのタグによって表示の指示がなされ、ブラウザがそれを読み取って実際のアイテムをウィンドウ内に表示しています。

ユーザーがブラウザを操作し、テキストボックスに文字列を入力したり、チェックボックスやリストで項目を選択したりして、[送信]などのボタンをクリックすれば、入力した文字列や選択された項目を示すデータが、Webサーバーに送信されます。

図2:フォーム機能を使って作成した入力用画面



- メールで受け取ることも可能 -

個人の運営するWebサイトで、ゲストブックなどにこのフォーム機能が使われていることがあります。ページを見た感想などを入力して[送信]ボタンをクリックすると、入力したメッセージがWebの開設者あてにメールとして送信されます。本来はWebサーバーに送られWebサーバーで処理されるのですが、プロバイダーのホームページサービスでは、加入者のWebページに入力されたすべてのデータをサーバーで処理することはできないので、個人宛のメールとする訳です。

この場合、入力されたデータを元にWebサーバー側で処理を行うことはできません。あくまで、即時応答の必要がない場合の手段です。


- 検索エンジンの仕組み -

Yahoo!やgooなどの検索エンジンでは、入力データをメールで送信するわけにはいきません。ユーザーがキーワードを入力したら、即座に該当するWebサイトのURLをブラウザに表示する必要があります。

一般的な検索エンジンの仕組みは、以下のようになっています。すべての検索エンジンが、以下のようなメカニズムで動いているということではありません。大まかな概念と捉えてください。

(1) ユーザーがブラウザに検索エンジンのURLを入力
WebサーバーにHTMLデータの送信要求が送られます
(2) Webサーバーからクライアントに向けて、入力画面のHTMLデータを送信
キーワード入力用のテキストボックスや[検索]ボタンを表示するためのデータが送信されます。
(3) クライアントのブラウザに入力画面が表示される
Webサーバーから送信されたHTMLに従って、ウィンドウ内にテキストボックスやボタンが表示されます。
(4) ユーザーがキーワードを入力
“VisualBasic”“プログラミング”“データベース”といった単語を1バイトのスペースなどで区切って入力するのが一般的です。
(5) ユーザーが[検索]ボタンをクリック
ユーザーの入力したキーワードがWebサーバーに送信されます。
(6) Webサーバーが受け取ったデータを処理
Webサーバー側でCGIを介し、検索用のプログラムが起動されます。ユーザーの入力したデータは、検索用プログラムに渡されます。
(7) 検索用プログラムが検索処理を実行
キーワードを元にデータベースを検索し、該当するWebサイトの紹介文やURLを取得します。
(8) 検索結果がWebサーバーに渡される
検索プログラムの検索結果が、HTML形式のデータとしてWebサーバーに送られます。
(9) Webサーバーが検索結果をクライアントに送信
送信されるデータは、HTML形式となった検索結果の画面です。
(10) クライアントのブラウザに検索結果が表示される
ブラウザが、受け取ったHTMLデータを元に検索結果画面を表示します。

図3:検索エンジンの仕組み



- CGIでデータを処理する -

CGIはCommon Gateway Interfaceの略で、HTMLだけでは実現できない処理を、Webサーバー上で動作する別のプログラムでさばくための機構です。

CGIによる処理では、Webサーバーは単に

  クライアントから送られてきたデータをプログラムに渡す
  プログラムの処理結果(HTML形式)を受け取ってクライアント
  に送信する

という処理を行っているに過ぎません。実際のデータ処理を行うのも、その結果をHTML形式で出力するのも、CGIプログラムの仕事です。

CGIと言えばUNIXのPerlやC言語で書かれたプログラムを連想する人も多いと思いますが、WindowsのIISで動作するASP(Active Server Pages)もCGIの一種です。ASPの場合、ADOによるデータベースの扱いに長けており、コードをVBスクリプトで記述できるというメリットがあります。


- 目次 -
トップページ
Webアプリケーションの基本を押さえる
UNIXの流儀
サーバーサイド・アプリケーション
CGIはWebアプリの基本
やり取りの手順
入力画面はフォーム機能で作る
メールで受け取ることも可能
検索エンジンの仕組み
CGIでデータを処理する
クライアントサイド・アプリケーション
Webアプリケーションとデータベース
あとがき

Copyright © MESCIUS inc. All rights reserved.