Java & CGI General

Return to Labo.

  • 昔話,興味無い人は読み飛ばし可!
    その昔,おいらが自分のホームページを造り始めた頃の事,まる1日掛けて作ったホームページを、FTPでサイトにアップロードし、なんだ、俺にも出来るじゃん,などと、良い気になって、リンク貼った友達のホームページに遊びに行ったら、アクセスカウンタが有って,JavaScript(実は、この時,これがJavaで動いているものとは知らなかった)が動いていた。そのとたん,俺の造ったホームページが、とても薄っぺらな存在に見えたのだった,当時の俺は、非常にバカだった。(今でもかわらんって?ほっとけ!)全てがHTMLで実現出来ると思っていたのだった・・・,(最初っから、その友達に、どうすれば出来るのかを聞けば良かったのだが・・・)早速HTMLの本を買い込んだ俺は、まず、アクセスカウンタを造ろうとした。しかし、いくら試してもそれらしいカウンタは出来なかった(当然だけどね)。そして、諦めかけた時,Javaって言葉が、脳裏をよぎった。『そうか!?これだ!』(これも間違いなんだけどね)次の瞬間,俺は何の疑いもなく、書店に向かって車を走らせていた。初めて触れたJavaScriptは、C++とPASCALとBASICを混ぜた様な感じだった。強引に、カウンタを組み上げた俺は、大きな壁に突き当たった。カウンタの値って、何処に格納すれば良いんだろう??試行錯誤する事、数時間,俺はある事に気付いた。『JavaScriptではファイルが開けない!』いや、開けないというのは適切では無いな。わざと、ファイルオブジェクトを避けている。この時点で、俺の頭の中は、かなりぐちゃぐちゃだったと思う。完全にノックアウトされた俺は、次の日、諦めて友達に『カウンタって、どうして造ってる?』と聞いた。答えは、あっさり,『あれはCGIだから、俺が造ったんじゃ無いよ,申し込んで、送られて来た使用例をそのまま書き込んだだけ・・』だった。数日後、俺のホームページにカウンタが付けられていた。

  • JAVAとCGIの違い
    ま、俺の昔話の様に無駄な努力をしないように、JAVAとCGIの違いを簡単に言っておこう。一番大きな違いは、実行される場所だな,
    • Javaの場合
      自分のPC

      ダウンロードした
      JAVAの実行

      →情報のダウンロード要求→
      ←Javaの書かれたHTML文書←
      ←JavaApplletの部品←
      サーバ
      サーバでは、要求された
      HTML文書を発行するだけ
      実行はしない。
      Javaの場合は、上図の様に、Javaの書かれたHTML文書と、Javaの部品(アプレットの場合のみ,先のHTML文書が読まれた後,要求が送信されて、ダウンロードする)をダウンロードして、自分のPC上で実行される。即ち、サーバ側は何もしないし、サーバ側のハードディスクに何らかの情報を保存して貰う事は出来ない。

    • CGIの場合
      自分のPC

      ユーザ操作または、
      読込時にCGI命令発行

      →情報のダウンロード要求→
      ←CGI命令の書かれたHTML文書←
      →   CGI命令   →
      ←実行結果の配信←
      サーバ
      サーバでは、要求された
      CGIを実行し、その結果
      を送出する。
      CGIの場合、まず、CGIの命令が書かれたHTML文書をダウンロードし、読み込んだ時点または、入力フォーム等への入力を、ユーザが行った時点で、CGIの命令がサーバ側に伝えられ、サーバ側が指定された、CGIプログラムを実行して、その結果を配信するという仕組みなので、サーバ側に情報を蓄積する、カウンタや、掲示板等の機能が実現出来るのである。

  • Javaについて,
    上述した様に、Javaは、一旦各個人の端末に配送されたものが、自分の端末上で動作するので、ホームページにちょっとしたアクセントを付けたり,簡単なゲームをするには向いている。アプレットは別としても、JavaScriptの方は、初心者にもわかりやすいプログラム言語であるので、機会が有れば挑戦してみよう!やってみたいって人は、別のページに、「Java講座」を書いて居るので、そちらを参考にしてみるのも良いかも知れない。

  • CGIについて,
    CGIというのは、Common Gateway Interfaceの略だそーだ。別にCGIで良いんじゃない?例えば、カウンタや、掲示板は、サーバの方で用意してくれたり、何処かで貸してくれるるサイトを見つけて、そこから借りて使うケースが多いので、あまり自分で書くって事は考えなくても良いんだけど、自分でやってみたいって思ったら、Pealという言語を勉強するのだ。おいらも知識が乏しいので、ここで詳しい解説は出来ないけど、本当に勉強したい人は、ここがお奨め,他にも、PERLに関して語ってるサイトが色々有るから、探してみるのも良いかもね。
    現在使われているCGIのほぼ80%はPealじゃないかな?他にもファイルにアクセス出来て、標準出力に結果を出力出来る言語なら、何でも構わない(C/C++言語など)みたいだけど、サーバ側が、その言語のインタプリタ(C言語を使う場合はコンパイラを使える環境でないと駄目)を標準装備してる必要が有って、今のところ、Pealが標準なんだ。かなりC言語に似た言語だけど、若干性格の違う部分も有るので、注意が必要,書いたプログラムをサーバ側に置いて、それを起動する為の仕掛けをしたHTML文書を造って置けば良い。また、CGIは、HTTPサーバ機能を持ったPCでないとテスト出来ないから、Win98なんかだと、結構苦労するのだ。

    その後,CGIについて、若干修行を積んだので、こちらに簡単にまとめてみた。詳しいリファレンスは、やはり、このへんを見てね!