CGIとは?
CGI(Common Gateway Interface)は、WWWサーバとサーバ上で作動するスクリプト・プログラムとのインターフェイスであり、HTML文書への記述だけだと不可能な処理を実行できる非常に強力な機能です。クライアント(読者)側と対話型処理を行わせたい場合や、ページを表示する際、あらかじめ何らかの処理を行わせたい場合、あるいは他のサーバプログラム(データベースなど)へ処理を依頼する場合などにCGIが利用されます。CGIを利用するサーバ環境としては、扱えるプログラミンング言語も豊富であるせいか、おもにUNIX系が好まれるほか、WHTTPD(Windows用HTTPD)やMacHTTP(マッキントッシュ用HTTPD)でもたいへん便利なCGIアプリケーションがあります。とくにMacHTTPの場合はAppleScriptでCGIスクリプトの記述が可能です。
CGI機能は、ブラウザ(閲覧ソフト)からフォーム形式などでhttpdサーバへ送ったデータをCGIスクリプトが処理し、HTML形式で送り返した結果をブラウザへ表示させるという流れが典型的なパターンです。しかし、これだけとは限らず、CGIスクリプトで処理した後のデータを指定アドレスへ電子メールで送ったり、最初にブラウザから要求せず実行させたり、いろいろなパターンがあります。
CGIスクリプト処理の流れ
なお、CGIにもHTTPのプロトコル・バージョンと同じようなバージョン番号があります。HTTP/0.9ではCGI/1.0、HTTP/1.0ではCGI/1.1が使われています。サーバが使用できるCGIバージョンの関係は下表のとおりです。
- クライアントはHTTPサーバに接続し、要求(リクエスト)を送ります。
- サーバは環境変数を読み込み、クライアントから受け取ったエンティティ・ボディーのデータを渡します。
- HTTPサーバはCGIプログラムを作動させます。
- CGIプログラムは実行し終わった後、HTTPサーバへ結果(HTML)を返します。
- HTTPサーバはクライアントに応答します。
サーバ名 バージョン CGI/1.0 CGI/1.1 CERN httpd 2.15以前 × × 2.15〜2.17 ○ × 2.17以降 ○ ○ NCSA httpd 1.0 × × 1.1 ○ × 1.1以降 ○ ○ Apache 全バージョン ○ ○ Netscape Netsite 全バージョン ○ ○