(Translated by https://www.hiragana.jp/)
いまさら聞けない、Webアプリケーションの常識:Webアプリの常識をJSPとStrutsで身につける(1)(1/2 ページ) - @IT
連載れんさい
» 2008ねん06がつ18にち 0000ふん 公開こうかい

いまさらけない、Webアプリケーションの常識じょうしきWebアプリの常識じょうしきをJSPとStrutsでにつける(1)(1/2 ページ)

[石川いしかわやすし株式会社かぶしきがいしゃメセナ・ネットコム]

Webアプリケーションの“常識じょうしき”をってますか?

 6がつになり、Java文法ぶんぽうなどをいちとおおぼえ、JSPサーブレットStrutsWebアプリケーション開発かいはつをやることになった新人しんじんプログラマーのみなさん! Webの知識ちしきがまったくなく、なにからまねべばいいかからずあせっている……。なんてことはないでしょうか?

 ほん連載れんさいは、JSP/サーブレット+StrutsのWebアプリケーション開発かいはつつうじて、Java言語げんご以外いがいPHPASP.NETRuby on Railsなど)の開発かいはつにも通用つうようするWebアプリケーション全般ぜんぱんひろ知識ちしき常識じょうしきけるための連載れんさいです。

 Webアプリケーションの開発かいはつプロジェクトにたりまえのようにアサインされたものの、「Webアプリケーションの基礎きそ知識ちしきなんて、いまさらひとにはけない! じつは、くわしいことはあまりかっていないのに……」という中堅ちゅうけん/ベテランのプログラマーも、もう一度いちど基礎きそ確認かくにんするつもりで気軽きがるんでみてください。

 今回こんかい連載れんさいだい1かいということで、Webアプリケーションをつくるうえでの基礎きそ知識ちしき前提ぜんてい条件じょうけん説明せつめいします。

あなたが現在げんざいているものが、Webアプリケーションです

 まず、「Webアプリケーション」とは、どのようなものでしょうか?

 そののとおり、「Webの仕組しくみ・機能きのう使つかったインターネット、もしくはイントラネットじょう提供ていきょうされるアプリケーションソフトウェア(プログラムの集合しゅうごうたい)」のことです。ようするに、Webサーバ配置はいちしたアプリケーションを、Webブラウザなどのユーザーエージェント(「サーバ」にたいして、「クライアント」のPC・携帯けいたい端末たんまつじょう)で利用りようできるようなソフトウェアのことをします。

 れいとしては、おも以下いかのものがげられます。読者どくしゃみなさんもいち使つかったことがあるとおもいます。

  • ポータル/検索けんさくサイト:「Yahoo!」や「Google」など
  • EC(電子でんし商取引しょうとりひき)サイト:「Amazon」や「楽天らくてん」など
  • 掲示板けいじばん:「2ちゃんねる」など
  • SNS(Social Networking Service):「mixi」や「モバゲータウン」など
  • ブログ
  • オークション
  • などなど

 みなさんがいまている「@IT」の記事きじも、1つのWebアプリケーションといえます。

ユーザーエージェントとは? Webブラウザとは?

 ユーザーエージェントの1つとして、Webブラウザをげました。では、ユーザーエージェントとは、なにでしょうか?

 「ユーザーエージェント」とは、プロトコルもとづいてデータをもちいるソフトウェアまたはハードウェアのことをします。Webアプリケーションの場合ばあい一般いっぱんてきに、HTTP(プロトコル)に対応たいおうしているユーザーエージェントを使つか必要ひつようがあります。

 Internet ExplorerFirefoxなどのWebブラウザもユーザーエージェントとべます。また、OutlookBecky!Thunderbirdなどのメールクライアントも(メール)ユーザーエージェントとぶことができます。

 それでは、「Webブラウザ」とはどのようなものでしょうか? 「いまさらけない『Webブラウザ』ちょう入門にゅうもん」にてくわしくかれているので、参考さんこうにしてください。

Webサーバとは?

 前述ぜんじゅつのとおり、WebアプリケーションはWebサーバへ配置はいちする必要ひつようがあります。Webサーバとは、ユーザーエージェント(Webブラウザ)にたいして、HTMLやイメージ(画像がぞう)などのオブジェクトを提供ていきょうし、表示ひょうじさせるためのサービスの機能きのうった、HTTPにのっとったサーバのことをします。

 サーバにあるWebアプリケーションのデータのかたとして、「ファイル管理かんり」「データベース管理かんり」などいろいろありますが、ほん連載れんさいでは、データベースで管理かんりすることを前提ぜんていとしてはなしすすめます。

 以上いじょうが、Webアプリケーションを説明せつめいするうえで、必要ひつよう最低限さいていげん事項じこうとなります。Webアプリケーションを説明せつめいする前提ぜんていととのいましたね。

Webアプリケーションの処理しょりなが

 ではつぎに、Webアプリケーションのながれについて説明せつめいします。今回こんかいは「Webアプリケーションとして構築こうちくされたシステムにログインする」という部分ぶぶんれいって説明せつめいします。以下いか1をごらんください。

図1 Webアプリケーション処理の流れ 1 Webアプリケーション処理しょりなが
  1. Webブラウザをげ、URL(Uniform Resource Locator)を入力にゅうりょくしてWebサーバじょう配置はいちされたアプリケーションへアクセスする
  2. Webブラウザに、システムログインページが表示ひょうじされる
  3. Webブラウザじょう表示ひょうじされた、IDパスワード必要ひつよう項目こうもく入力にゅうりょくし、「ログイン」ボタンをクリックする
  4. システムログインページからシステムがIDとパスワードをりデータベースにIDとパスワードを照会しょうかいする
  5. 正常せいじょう」もしくは「異常いじょう」と、照会しょうかい結果けっかをWebブラウザにたいしてかえ
  6. Webブラウザが結果けっかり、表示ひょうじする

 システムへリクエストする内容ないよう画面がめんごとにことなりますが、1〜6とおなじような手順てじゅんかえし、Webアプリケーション(システム)を操作そうさしていきます。以上いじょうがWebアプリケーションのおおまかなながれとなります。

Webアプリケーションの通信つうしん仕組しく

 では、「ログイン」をクリックしたとき、Webブラウザ、Webサーバ、データベースあいだでどのような通信つうしんおこなわれているかを説明せつめいします。以下いか2をごらんください。

図2 Webアプリケーションの通信の仕組み 2 Webアプリケーションの通信つうしん仕組しく
  1. WebブラウザからWebサーバにたいして、HTTPでリクエスト送信そうしん
    【アクション】
    「ログイン」ボタンをすと、IDとパスワードが「HTTPメッセージ」としてWebサーバへ送信そうしんされる
  2. Webサーバでは、HTTPでおくられてきたHTTPメッセージの内容ないよう判断はんだんし、Webサーバにかれたプログラムで処理しょりおこなう。
    【アクション】
    HTTPメッセージないのIDとパスワードを、データベースに照会しょうかいするためのクエリー作成さくせいし、データベースにたいしてそのクエリーを発行はっこう
  3. データベースサーバでった、クエリーを判断はんだん結果けっかをWebサーバへかえす。
    【アクション】
    IDとパスワードがデータベースない存在そんざいするかを検証けんしょうし、「OK」もしくは「NG」という結果けっかをWebサーバへかえ
  4. Webサーバでは、データベースからった結果けっかもと結果けっかページを生成せいせいし、HTTPレスポンスとして、Webブラウザへ送信そうしんする。その結果けっか、Webブラウザにログインにたいする結果けっか表示ひょうじされる

 HTTPプロトコルにかんしては、連載れんさいなかで「プロトコルの常識じょうしき」としてげる予定よていとなっていますので、そのときにくわしく説明せつめいします。

ステートとは?

 Webアプリケーションを構築こうちくするときに、前提ぜんてい条件じょうけんとしてっておいてほしい「ステート」について説明せつめいします。

 前述ぜんじゅつのシステムへログインする場合ばあいは、最初さいしょにシステムにログインすると、そのログオフしないかぎり、おなじシステムないでページを遷移せんいするさい、ログイン状態じょうたいぎます。この状態じょうたいを「ステートフル」といいます。また、ページを遷移せんいするさいにログイン状態じょうたいがないことを、「ステートレス」といいます。

 Webアプリケーションで使つかう、HTTPをもちいた接続せつぞくには「HTTPセッション」という定義ていぎがあります。この「HTTPセッション」は、「ステートレス」となっており、ページごとに1セッションとなってしまいます。

 Webアプリケーションのように「ステートフル」なシステムを構築こうちくする場合ばあいは、おもCookie(クッキー)を使つかって、ページを遷移せんいしても状態じょうたいぐような実装じっそうをする必要ひつようがあります。Cookieについてくわしくりたい読者どくしゃは「JSPプログラムでクッキーをあつか」を参考さんこうにしてください。

 さらにページでは、Webアプリ開発かいはつ推奨すいしょうされている「MVCモデル」、アプリケーション開発かいはつの“土台どだい”である「フレームワーク」について説明せつめいし、ほん連載れんさい今後こんごについておはなしします。

       1|2 つぎのページへ

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアIDについて

メールマガジン登録とうろく

@ITのメールマガジンは、 もちろん、すべて無料むりょうです。ぜひメールマガジンをご購読こうどくください。