Common Gateway Interface
CGI の仕様はNCSAにより最初に定義・実装(NCSA HTTPdにおいて)され、現在の最新版はCGI1.1である。2004年にRFC 3875となった。
CGI は、典型的には以下のような動作を期待される。CGIを経由して実行されるプログラムのことを、CGIプログラムと呼ぶ。
CGIプログラムはウェブサーバがクライアントからのリクエストに応じて起動する。 典型的には、ウェブサーバの公開領域に置かれたプログラムに対応するURIへのリクエストがあると、サーバはそのCGIプログラムをCGIの取り決めに従って呼び出す。
CGIプログラムへの情報の入力は、コマンドライン引数、環境変数、標準入力によって行われる。 ウェブサーバがCGIプログラムを呼び出す時点でいくつかの環境変数を定義することが定められている。 特に、クライアントがサーバに要求したURIのうち、検索文字列(Query String)部が環境変数 QUERY_STRING に設定されるので、これはHTMLフォームからGETメソッドで入力を受けるのに便利である。 QUERY_STRING に文字「=」が含まれない場合は、サーバは QUERY_STRING の内容をコマンドライン引数としてCGIプログラムに渡す。これはHTMLのISINDEX要素を用いて送信された情報を扱うのに便利である。