投稿日:2006年6月20日 レベル:初級 ソフトウェア:−
ごく一般的なコンピューター専門用語として使われる、Common Gateway Interfaceという言葉は、一見、実に無意味なように思えます。それは、CGIに何ができるのかということをわかって初めてその意味を理解できるでしょう。それでは、CGIとは何かということについてみていきましょう。
Common‐CGIは多くの言語によって記述されます。CGIはユーザーが操作できるC、C++、Java、Perl、Visual Basicsやその他多くの言語によってプログラムできます。
さらに、CGIは様々なタイプのシステムで動作します。Mac、NT、Windows、OS2、Amiga、UNIXなどウェブサーバーを走らせる多くのオペレーティングシステムで有効です。
ところで、もしあなたが、PerlやJaveといった“プラットフォーム独立”な言語をCGIの記述のために使うなら、違うプラットフォームに直接、全く同じCGIを移動させることが可能です。
Gateway‐CGIの有効性は、それ自身で完成されるということに起因しているのではなく、他のソースとパートナーシップを組むことで完成されることによります。
CGIがより大きなソースであるデータベースやグラフィック起動プログラム、お互いにやりとりし、共通の解決を見出すようなネットワークアプリケーションの中間に入るような仕事を担うことをしばしば見かけます。
CGIはひとつのウェブサーバーとウェブブラウザ、膨大な数のコンピューター(それぞれが独自の言語とプロトコルをもつ)とコンピュータープログラム(それぞれが独自のインターフェイスと出力方法をもつ)との、出入り口(Gateway)となります。
CGIはクライアントが使う言語(主にHTML化された英語だと思います)とソース側に使用したい言語(データベース用のSQLのような)とを結びつけるのです。これは実に重要な役割になります、私の祖母がネットをしている時に、SQLがどんな言葉かなんて知りたいわけないですよね?
Interface- CGIは言語ではありません。プログラムでもありません。CGIはコミュニケーション、プロセスの標準であり、よく定義されたルールを与えるインターフェイスです。つまりこのインターフェイスのルールに従えば、みんながお互いに会話できることになります。そして、一般的に言われる、コモンゲートウェイインターフェイスの機能としての“CGIプログラム”もしくは“CGIスクリプト”を作成しているのです。
CGIプロセスを下のフローチャートで見てみましょう。

では、実際にCGIを使って作業したことがなければ、すぐ理解するにはたくさんの用語、素材がありすぎると思います。実際にCGIとは何かということに少し立ち返りましょう。CGIのアクションについて、いくつかの例を見ていきます。
プロセス形式‐CGIの一般的な使い方といえば、ウェブサーファーがHTML形式の中にデータを入力したり、そのデータをサイト管理者に送ったりということがあります。フィードバック形式を用いて、ウェブサーファーは前もって準備されたHTMLドキュメントを読めるだけでなく、そのフィードバックも返すことができます。HTML単独でできることとはだいぶ違ってきます。このプロセス形式スクリプトは、ウェブサーファーにデータを入力してもらって、それを管理者にeメールで送るということになります。
別の代表的なプロセス形式アプリケーションといえば、ゲストブックのように、ウェブサーファーが公に公開されるコメントを残したりできるものがあります。CGIはウェブサーバーに誰でも閲覧できるような共有ファイルの管理もおこないます。
物事の議論‐ただクライアントから返答が帰ってくる形式ではなく、CGIは複数のクライアント間でのリアルタイムな会話をサポートできます。BBSシステムは多くの人々が、コメントを寄せるのに利用されています。さらに、世界中の人々と、今、リアルタイムにチャットするといったことも可能です。
買い物‐ウェブで商品を売る時もCGIが大いに役立ちます。
データベース‐最後に、CGIはデータベースの管理にも使われます。
このように、ウェブサーファーはウェブ上で、たくさんのCGIの恩恵を受けています。しかし、それはみなさんには見えない部分なのです。
引用:Web Design Library著者:Selena Sol翻訳:atuk