CGIを介してウェブサーバでプログラムを動かす

サーバの役割

ウェブサーバは通常、サーバ上にある静的なファイル(*.htmlや*.jpgなど)をリクエストに応じて送り返します。

このため、リクエストによって内容を変化させたりなど、動的な内容を送り返す事ができません。

プログラムの概念

RubyPerl、Cなどのプログラムは、ある入力を与えるとそれに応じて処理を行い、結果を返します。コンピュータはすべてこの「入力・処理・出力」の組み合わせでできています。

CGI

CGIとは、ウェブサーバに動的な内容を送り返させるようにする仕組みです。ウェブサーバに組み込む事によって、CGIを仲介してプログラムを動かす事ができます。

ウェブサーバは、クライアントからリクエストを受け取り、これが*.cgiファイルだった場合、CGIにリクエストの内容を渡します。CGIは更に、指定されたファイルをプログラムとして動かします。このとき、リクエストの内容をプログラムへの入力として渡します。このとき、プログラムファイルは実行可能権限である必要があります。プログラムの処理が終わると、その出力をCGIはウェブサーバへ戻し、ウェブサーバはそれをクライアントへ送り返します。