[Up] [Next] [Previous]

CGIとは

CGI (Common Gateway Interface)はWWWサーバとサーバ上で動作するスクリプ ト/プログラムとのインタフェースで、HTMLの記述だけでは不可能な仕事を行 なわせる場合に用いられる非常に強力な機能です。CGIはWWWクライントとの間 で対話的な処理を行わせる場合、ページを表示する際に予め何等かの処理を行 ないたい場合、他のサーバプログラム(データベース等)に処理を依頼する場合 等に利用されます。

CGI を利用するサーバ環境としては扱えるプログラミング言語も豊富であるせ いか、主にUNIX系が好まれます。WHTTPD (ウィンドウズ用HTTPD) や MacHTTP (マッキントッシュ用HTTPD) でも非常に便利なCGIアプリケーションがありま すし、特にMacHTTPの場合はAppleScriptでCGIスクリプトを記述することがで きます。

CGIの処理の流れは、ブラウザからのフォーム形式等によりデータをhttpdサー バに送出し、CGI スクリプトに渡します。そして、CGIスクリプトは処理を行 い、通常はHTML形式で結果を送出し、ブラウザに表示します。もちろん、ブラ ウザからの要求なしに実行される場合もあります。


CGIスクリプトの処理の流れ

  1. クライアントはHTTPサーバに接続し、要求 (リクエスト)を送ります。
  2. サーバは環境変数を読み込み、クラアイントから受け取ったエンティ ティボディにあるデータを渡します。
  3. HTTPサーバはCGIプログラムを動作させます。
  4. CGIプログラムは実行し終った後、HTTPサーバに結果(HTML)を返します。
  5. HTTPサーバはクライアントに応答を送ります。
なお、CGIにもHTTPのプロトコルバージョンと同じようなバージョン番号があ ります。HTTP/0.9 ではCGI/1.0、HTTP/1.0ではCGI/1.1が使われています。サー バが使用できるCGIバージョンの関係を下表に示します。

サーバ名 バージョン CGI/1.0 CGI/1.1
CERN httpd < 2.15 N N
2.15-2.17 Y N
> 2.17 Y Y
NCSA httpd 1.0 N N
1,0, 1.1 Y N
>1.1 Y Y
Apache Any Y Y
Netscape Netsite Any Y Y


[Up] [Next] [Previous]