CGIとは何か


● はじめに

猛烈な勢いで世界に広まるWWW(World Wide Web)の片隅に自分の webpage を持たれている人がふえてきました。 webpage を作るための言語HTML(Hyper Text Markup Language) は非常に簡易化された言語です。ちょっとした呪文を唱えるだけで 他のページへのリンクをつなげたり、画像をページに貼ることができます。

しかし、あなたがプログラマなら、ただ単に絵を貼ったり、文章を飾ったり するだけでは満足しないはずです。 御自分のプログラミングの技術を活かして、 訪れるたびに内容の変化するページや、ページを見に来た人と意見を交換 するページを作りたいと思いませんか?

最近、そのようなユーザーの要求から、WWWはどんどん進化しています。 Java や VRML がその花形でしょう。しかし、インターラクティブなページを 作るためには多少地味ながらも CGI を駆使するのが基本です。

CGIはプログラミングのジャンルの一種であり、プログラムの言語には 関係ありません。CGIでは文字列を扱うことが多いので 文字列の処理が容易な言語で設計すると簡単です。 そのため、市販の多くの本ではperl言語でCGIを作成しています。 しかし、それはプログラムを全く知らない素人がHTMLを知った調子で CGIにも挑戦してみようという場合の話であって、C/C++言語をマスター している人にとってはCGIのためだけにperl言語を学ぶのは時間の無駄です。
そこで本書ではC/C++言語を自由に使える人向けに C/C++言語でCGIを作成する方法を解説します。


● CGIは何をするプログラムなのか。

CGIとはCommon Gateway Interfaceの略で、 web server と他のプログラムとのデータの送受信の規格です。 実質的には、CGIとは web server で動いて web 経由でデータを閲覧者と送受信するプログラムの総称となっています。

閲覧者がweb経由でCGIプログラムにアクセスすると、web server が そのCGIプログラムを実行して、その出力結果を閲覧者に送り返します。 その出力の内容がHTMLの文章なら、すなわち 閲覧者クリックするたびにその時その場でページが生成されることになり、 文字通り変化に富んだページとなります。 また、CGIが出力する内容が画像ファイルなら、クリックするたびに 変化する絵にもなります。

閲覧者はCGIにアクセスする際にさまざなメッセージを CGIに送ることもできます。そしてCGIはその メッセージを受けてプログラム中でさまざまな処理を施した後に 適切なメッセージを書いたページを閲覧者に送り返すことができます。 こうして対話性のあるページをプログラムによって作ることができるのです。

以降でそのようなプログラムの作り方をC/C++言語で解説していきます。


目次

Copyright(C) by Naoki Watanabe. Oct 21st, 1995.
渡辺尚貴 naoki@cms.phys.s.u-tokyo.ac.jp