next up previous contents
Next: 12.2 CGIの設定 Up: 12. CGI Previous: 12. CGI

12.1 Gatewayとは何か?

CGIは、Common Gateway Interface の略です。 CGIが、wwwの Common Interface であることは、おいおい分かってもらえると 思うのですが、少し分かりにくいのは、"Gateway" という言葉です。 Gatewayは、二つのものを橋渡しをするものですが、CGIのGatewayは、 何と何とをつないでいるのでしょうか?

wwwサーバ上に、SQLのデータベースが置かれているとしましょう。 wwwのユーザが、このデータベース上のデータを利用しようと思っても、 データベース側はSQL言語しか理解しませんし、wwwクライアント側はHTML言語 しか理解しません。この二つを仲立ちするプログラム、例えば、SQLでの 検索結果をHTML言語で書き換えて、ユーザがNetscapeで読めるようにする プログラムが必要です。

このように、wwwのユーザが読めないデータを、HTMLのように、wwwのユーザが読める データに変換するプログラムのことを Gateway と呼んでいます。 「ユーザが読めないデータ」と言いましたが、それは何かのファイルやデータ といった実体のあるものである必要はありません。何もないところからでも HTMLのドキュメントを生成するプログラムも、Gateway と呼んでいます。

このあたりから、もとの Gateway という言葉の意味は失われてゆきます。 最終的には、何はともあれ、wwwのviewerが解釈できるドキュメントを 生成するプログラムは、全て Gateway であるということになります。

Media type に基づくexternal viewer起動のメカニズムは、クライアントが、 外部のプログラムを呼び出す時に利用されますが、これとの比較で言うと、 CGIは、wwwサーバが、外部のプログラムを呼び出すときに利用されます。 サーバから呼び出されるプログラムを Gateway と呼んでいます。 別の言い方をすれば、CGIは、wwwサーバが、wwwサーバが解釈できるデータを 出力するGatewayプログラムを呼び出す、共通の仕様を定めたものです。



Noriyo Kanayama