CGI / Common Gateway Interface

CGIとは、ウェブサーバ上でユーザプログラムを動作させるための仕組みである。現存する多くのウェブサーバプログラムはCGIの機能を利用することができる。

ウェブサーバプログラムの機能の主体は、あらかじめ用意された情報を利用者(クライアント)の要求に応じて送り返すことである。そのためサーバプログラム単体では情報をその場で動的に生成してクライアントに送信するような仕組みを作ることはできなかった。そこで、サーバプログラムから他のプログラムを呼び出し、その処理結果をクライアントに送信する方法が考案された。それを実現するためのサーバプログラムと外部プログラムとの連携法の取り決めがCGIである。

CGIを用いるプログラムとしてはどのようなプログラミング言語等で記述することもできるが、C言語やPerlが使われることが多かった。近年では、PHPやPython、Rubyなども使われている。

電子掲示板やアクセスカウンタ、WikiやBlogシステムなどを作る目的でCGIを用いることがある。これらはいずれも利用者の書き込みやアクセスによって表示内容が変わっていく動的なものであるため、CGIのような技術が必要になる(ただし、現在ではCGI以外の技術で作ることが可能になっている)。

Webサーバにプロセスを常駐させておくことによりパフォーマンスを向上させるJava Servletやmod_perl、mod_php、FastCGIなどの技術の出現しているが、これらのうちJava Servlet、mod_perl、mod_phpはCGIとは仕組みが異なる競合技術である。

PAGE TOP