なぜなにCGI?
天蒼工房の屋根裏に住む、けんたと m's 社長、まゆこ餅のCGI勉強会!
CGIってなんだ? Home

  『はーい、せんせー。CGI って何?』
  『そうだなぁ。あなたで何人目のお客様です!とか、掲示板とかを動かしているもののことさ。』
  『ふーん。』
  『う。ちゃんと説明するってば!』

説明しよう! Top

 CGI ってのは、Common Gateway Interface って言葉の略語だね。おいらのグラデーション掲示板とか、よく見かける、『あなたで何人目です!』のアクセスカウンターやチャットがこれで作られている。CGI ってのは、いろいろなものがあって、UNIX のコマンドでもいいし、C 言語でもいい。NT サーバーについている IIS (Internet Information Server) っていう、ホームページを動かすソフトでは ASP (Active Server Pages) なんてものまであったりして、どれも CGI って言える。
 特徴をさらっというとだね。

  • C言語 はプログラムがコンパクトで処理がごっつーぅ速い!しかし、作るの難しいし、メンテもめんどくさい。
    しかも、Macじゃ作れない(;_;)。標準入出力が使用できないらしい(作ったことないけど)
  • ASP はいわゆる Basic。簡単だけど、NT や Windows でしか使えないんだな、これが。
    Microsoft プラットホームオンリービバビルゲイツって感じ(謎)
  • Perl は文字列処理が大の得意。ほとんどの OS で動く!コンパイルの必要なし!文法も他に比べて厳格じゃない。
    同じことが数行で作れてしまうのだ。ただ、C 言語と比べると遅いけどね。

 そういうわけで、一般的に使われているのが Perl で、これから勉強しよーってのも、これを主体にするのだ。何も、この Perl はホームページの為にできたわけではなく、むかーしむかしからあるようで(それぐらいしか知らない)、ちょいちょいと数行書くだけで文字列の加工ができてしまう。フィルター言語とか言ってたな。←いいかげんとおもうなかれ。そのうちきちんと描き直すべ。

 普通の HTML で書いたページは、他人がブラウザで見ると、そのページを作った人と同じ画面が表示される(当たり前か)。しかし、何回、いつ見ても作る人が変えない限り、おーんなじまま。見る方は見ることしかできない。コミュニケーションが作り手からの一方向なんだよね。見る方も、『なんとか、メールじゃなくてその場で感想を述べたいなぁ』とか、作る方も『みんなの反応が分からないなぁ』とか不満が出てくる。
 そこで現れたのが、この CGI 。ページを開くたびに、作っておいたプログラムが走って、その時その時のページを作り出してくれる。同じページでも、さっき見た画面と、今の画面が変えられるのだ。しかも、見る方からメッセージを書いてそこに表示させることもできてしまう。そう。ふつーの HTML のページが静的であるのに対して、こっちは動的、双方向コミュニケーションも夢じゃぁない。

そういうもんさ。



じゃあ、SSI とどう違うのさ? Top

  『ふーん。要は掲示板なんだね。』
  『いや-、なんか違うような...ま、いっか。』
  『じゃあさ、じゃあさ、SSI ってなんだべ?』
  『う。どこでその言葉を...』

説明しよう! Top

 はっきり言って、同じ! はい、終わり。って訳にもいかないな。

SSI は CGI とプログラムの言語も同じで働きも同じ。処理して結果をブラウザに送る。SSI ってのは、Server Side Include って言うんだ。ふつーは、CGI はひとつのファイルでできていて、拡張子に、『 .cgi 』となっている。これ単体で、 http://www.user.host/~user/xxx.cgi って感じで呼び出せばページが表示されるように作られている。
 これに対して、SSI ってのはふつーの HTML のファイルの中に、

      <!--#exec cmd="xxxxx"-->

とタグを埋め込むようにして使うのだ。どっちかっていうと、CGI が拡張子に『 .cgi 』って使って、ライブラリー的扱いをするものや、HTML ページに埋め込む SSI ってのは、拡張子に『 .pl 』を使う。
  CGI が見る人にボタンやリンクを押してもらってはじめて動作するのに対して、アクセスカウンターとか勝手に走ってくれないと困る時とかにこの SSI を使うんだ。
 SSI の使い方ってのは、HTML ページに埋め込むから、アクセスカウンターに使われることが多い。CGI がそれひとつで HTML を吐き出して表示させることができるのに対して、SSI は HTML ファイルの中に埋め込まれて、HTML ファイルの一部を処理して返す動きをするように作るのだ。

 SSI を埋め込んだ HTML ファイルは、普通拡張子に、『 .shtml 』とつけるね。 こういうファイルを Parse HTML と呼ぶんだ。これは変えれるよ。おいらは普通の『 .htm 』で使えるようにしているんだ。変え方はまた別の場所で書くね。

 禁無断転載 

天蒼工房
1989-2007 STUDIO KENTA All Rights Reserved.