[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スクリプトの処理の流れ
  -  クライアントはHTTPサーバに接続し、要求 (リクエスト)を送ります。
  
 -  サーバは環境変数を読み込み、クラアイントから受け取ったエンティ
       ティボディにあるデータを渡します。
  
 -  HTTPサーバはCGIプログラムを動作させます。
  
 -  CGIプログラムは実行し終った後、HTTPサーバに結果(HTML)を返します。
  
 -  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]