CGIとは?
Common Gateway Interface (コモン・ゲートウェイ・インタフェース、CGI)は、ウェブサーバ上でユーザプログラムを動作させるための仕組み。現存する多くのウェブサーバプログラムはCGIの機能を利用することができる。
ウェブサーバプログラムの機能の主体は、あらかじめ用意された情報を利用者(クライアント)の要求に応じて送り返すことである。そのためサーバプログラム単体では情報をその場で動的に生成してクライアントに送信するような仕組みを作ることはできなかった。 そこで、サーバプログラムから他のプログラムを呼び出し、その処理結果をクライアントに送信する方法が考案された。それを実現するためのサーバプログラムと外部プログラムとの連携法の取り決めがCGIである。
CGIは、環境変数や標準入出力の扱えるプログラミング言語からなら、言語の別を問わず幅広く利用できるが、実行速度やテキスト処理の容易さなどの兼ね合いにより、C言語やPerlが使われることが多い。近年では、PHPやPython、Rubyなども広く使われている。
代表的なアプリケーションには、電子掲示板やアクセスカウンタ、WikiやBlogシステムなどがある。
近年では、Webサーバのプロセスとしてインタプリタを常駐させておくことにより、CGIからプログラムを呼び出すオーバヘッドを減らし、パフォーマンスを向上させたJava Servletやmod_perl、mod_php、FastCGIなどの実装も出現している。
(参照:wikipedia)