ネットサーフィンをしていると掲示板やチャット、アクセスカウンターなどを見かけることがあります。 これらの機能を利用して楽しんでいる人も多いと思います。 このようなサイトはアクセスするたびに、あるいは書き込みをするたびにその内容が変化していきますね。 これらの動きのあるページはCGI(Common Gateway Interface)という機能を使用して動いています。 そしてこのCGIを使うのに、今一番ポピュラーな言語がPerlというわけです。 このサイトの後のほうでもPerlを使用したCGIスクリプトについて取り上げています。
ではCGIは普通のHTML文書とどう違うのでしょうか。 この節では、HTML文書とCGIの違いを見ながらCGIの仕組みについて簡単に説明していきます。
まず、通常のHTML文書がどのように表示されるかを見てみましょう。 HTML文書はWWWサーバーに保管されています。 そしてサイトを訪れた人がブラウザのアドレスバーにURLを入力したり、リンクボタンを押すと、ブラウザはWWWサーバーにURLを渡します。 WWWサーバーは受け取ったURLをもとにHTML文書を探し出し、見つかったらブラウザにそれをそのまま渡します。 そしてブラウザは受け取ったHTML文書を表示するわけです。
一方、CGIの方はというと… これは順を追って説明しましょう。
(1)ユーザからのリクエスト
ユーザがサイトを訪問したり、掲示板に書きこんで送信ボタンを押したりすると、ブラウザはそこに設定されているCGIスクリプトのURLをWWWサーバーに渡します。
(2)CGIスクリプトの起動
URLを受け取ったWWWサーバーはファイルの拡張子を見てそれがCGIかどうか判断し、もしそうならそのスクリプトを起動します。 判断基準は拡張子が.cgiであるというのが基本ですが、これはサーバの初期設定で(.htaccessというファイルを書きかえることで)変更できることもあります。
(3)CGIスクリプトの実行
起動したCGIスクリプトはいろいろな演算を行い、その結果をWWWサーバーに返します。
(4)結果をブラウザに返す
最後にWWWサーバーはCGIから受け取った結果をブラウザに返し、ブラウザはそれを表示します。
これでCGIの動作の流れは大体わかったと思います。 ところで、CGIは通常インターネット上で動作します。 今後、このサイトでもいくつかのCGIスクリプトを作りますが、そのたびにホームページにアップロードして動作確認するのはめんどくさいし、お金もかかります。 そこで自分のパソコンをWebサーバーにしてしまいましょう。 それには中田昭雄さんが作成されたAn httpd v1.32fというソフトを使います。 中田さんのホームページからダウンロードでき、インストールや初期設定の方法なども詳しく書いてありますので、そちらをご覧ください。
さてこれでようやく準備も終わりです。 次の章からいよいよPerlの勉強をはじめましょう。