Webの知識がまったくなく、何から学べばいいか分からず焦っている......。Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です。実は、詳しいことはあまり分かっていないのに......」という中堅/ベテランのプログラマーも、もう一度基礎を確認するつもりで気軽に読んでみてください。あなたが現在見ているものが、Webアプリケーションですまず、「Webアプリケーション」とは、どのようなものでしょうか?その名のとおり、「Webの仕組み・機能を使ったインターネット、もしくはイントラネット上で提供されるアプリケーションソフトウェア(プログラムの集合体)」のことです。要するに、Webサーバに配置したアプリケーションを、Webブラウザなどのユーザーエージェント(「サーバ」に対して、「クライアント」のPC・携帯端末上)で利用できるようなソフトウェアのことを指します。例としては、主に以下のものが挙げられます。読者の皆さんも一度は使ったことがあると思います。Service):「mixi」や「モバゲータウン」などブログオークションなどなど皆さんがいま見ている「@IT」の記事も、1つのWebアプリケーションといえます。Webブラウザとは?ユーザーエージェントの1つとして、Webブラウザを挙げました。ユーザーエージェントとは、何でしょうか?「ユーザーエージェント」とは、プロトコルに基づいてデータを用いるソフトウェアまたはハードウェアのことを指します。Webアプリケーションの場合は一般的に、HTTP(プロトコル)に対応しているユーザーエージェントを使う必要があります。ExplorerやFirefoxなどのWebブラウザもユーザーエージェントと呼べます。OutlookやBecky!、Thunderbirdなどのメールクライアントも(メール)ユーザーエージェントと呼ぶことができます。「いまさら聞けない『Webブラウザ』超入門」にて詳しく書かれているので、参考にしてください。■Webサーバとは?前述のとおり、WebアプリケーションはWebサーバへ配置する必要があります。Webサーバとは、ユーザーエージェント(Webブラウザ)に対して、HTMLやイメージ(画像)などのオブジェクトを提供し、表示させるためのサービスの機能を持った、HTTPにのっとったサーバのことを指します。サーバにあるWebアプリケーションのデータの持ち方として、「ファイル管理」「データベース管理」などいろいろありますが、本連載では、データベースで管理することを前提として話を進めます。以上が、Webアプリケーションを説明するうえで、必要最低限の事項となります。Webアプリケーションを説明する前提が整いましたね。Webアプリケーションの処理の流れでは次に、Webアプリケーションの流れについて説明します。今回は「Webアプリケーションとして構築されたシステムにログインする」という部分を例に取って説明します。以下の図1をご覧ください。Locator)を入力してWebサーバ上に配置されたアプリケーションへアクセスするWebブラウザに、システムログインページが表示されるWebブラウザ上に表示された、IDとパスワードに必要項目を入力し、「ログイン」ボタンをクリックするシステムログインページからシステムがIDとパスワードを受け取りデータベースにIDとパスワードを照会する「正常」もしくは「異常」と、照会結果をWebブラウザに対して返すWebブラウザが結果を受け取り、表示するシステムへリクエストする内容は画面ごとに異なりますが、1〜6と同じような手順を繰り返し、Webアプリケーション(システム)を操作していきます。以上がWebアプリケーションの大まかな流れとなります。■Webアプリケーションの通信の仕組みでは、「ログイン」をクリックしたとき、Webブラウザ、Webサーバ、データベース間でどのような通信が行われているかを説明します。以下の図2をご覧ください。「ログイン」ボタンを押すと、IDとパスワードが「HTTPメッセージ」としてWebサーバへ送信されるWebサーバでは、HTTPで送られてきたHTTPメッセージの内容を判断し、Webサーバに置かれたプログラムで処理を行う。【アクション】HTTPメッセージ内のIDとパスワードを、データベースに照会するためのクエリーを作成し、データベースに対してそのクエリーを発行データベースサーバで受け取った、クエリーを判断し結果をWebサーバへ返す。【アクション】IDとパスワードがデータベース内に存在するかを検証し、「OK」もしくは「NG」という結果をWebサーバへ返すWebサーバでは、データベースから受け取った結果を基に結果ページを生成し、HTTPレスポンスとして、Webブラウザへ送信する。その結果、Webブラウザにログインに対する結果が表示されるHTTPプロトコルに関しては、連載の中で「プロトコルの常識」として取り上げる予定となっていますので、そのときに詳しく説明します。■ステートとは?Webアプリケーションを構築するときに、前提条件として知っておいてほしい「ステート」について説明します。前述のシステムへログインする場合は、最初にシステムにログインすると、その後ログオフしない限り、同じシステム内でページを遷移する際、ログイン状態を引き継ぎます。この状態を「ステートフル」といいます。ページを遷移する際にログイン状態を引き継がないことを、「ステートレス」といいます。Webアプリケーションで使う、HTTPを用いた接続には「HTTPセッション」という定義があります。この「HTTPセッション」は、「ステートレス」となっており、ページごとに1セッションとなってしまいます。Webアプリケーションのように「ステートフル」なシステムを構築する場合は、主にCookie(クッキー)を使って、ページを遷移しても状態を引き継ぐような実装をする必要があります。Cookieについて詳しく知りたい読者は「JSPプログラムでクッキーを扱う」を参考にしてください。kwoutさらに次ページでは、Webアプリ開発に推奨されている「MVCモデル」、アプリケーション開発の“土台”である「フレームワーク」について説明し、本連載の今後についてお話します。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。