[電気仕掛けの箱庭]CGIとは?

[ここ「ラボ」ができる前(2000年頃)、メモ代わりに運用していた「電気仕掛けの箱庭」の記事を移転・一部現在にあわせて改変。]

 自力でインタラクティブナページを目指すなら、このCGIと呼ばれる仕組みを大抵使うことになります。CGIとはCommon Gateway Interfaceの略で、主にブラウザの要求によりWWWサーバー上で実行されるプログラムのことを指します。わかりやすいように‘CGIプログラム’と言うことも多いですね。アクセスした人はがホームページに書込んだり、書込まれたデータを 表示したりするプログラム、入力や状況によってページ全体の表示を変更したり刷るプログラムで利用され、その良い例が「掲示板」や「チャット」などです。CGIは、CやPERLなどのプログラミング言語を用いて書かれたプログラムなのですが、PERLの方が簡単なのでよく使われています。

CGIの働く際の動きは以下の通りです。
(U)ユーザー、(B)ブラウザソフト、(S)WWWサーバー

(U)ホームページにアクセスする
(B)ブラウザがサーバーにアクセス要求を送る
例:コンサ応援ページの『WhatsNew』ページ
https://www.consadeconsa.com/whatsnew/whatsnew.cgiというCGIプログラムの場合
 ↓

(S)サーバーがアクセス要求を受信する
www.consadeconsa.comというサーバーは、whatsnew/whatsnew.cgiという名のファイルを探す
 ↓

(S)サーバーがファイルの判断をする
whatsnew.cgiの拡張子を調べ、このファイルをどうするか判断する
この場合は.cgiなので、「このファイルをCGIプログラムと判断、実行した結果をブラウザに返すという動作をすべきと判断する」(ちなみに拡張子がhtmlの場合、ファイルの内容をHTML文と解釈して、その結果をブラウザに返すと判断する)
 ↓

(S)サーバーがファイルを実行する
サーバーはCGI(whatsnew.cgi)ファイルの内容に従いプログラムを実行する
 ↓

(S)サーバーからブラウザへ実行結果を送信
大抵は実行結果をHTML文で表示する命令になっている
この場合は、『WhatsNew』ページ内容を最新順に表示
 ↓

(B)ブラウザがサーバーからのデータを受取る
 ↓

(B)ブラウザは受け取ったデータを解釈し、表示する
(U)ページが見れる

 上記の動きの例は、直接ブラウザから、CGIファイルにアクセスしたときの動きですが、掲示板で記事を投稿するような場合は、普通のHTMLページから、『投稿する』などのボタンを押した際に、CGIプログラムへアクセスするようになっていて、原理は一緒です。

 いづれにしても、CGIはプログラムなので、これを自分のページに設置するには、ある程度、プログラム言語に必要な知識が必要になります。また、ホームページを載せているサーバーによっては、CGIの使用を禁止していることもあり、使用する際は、利用が可能かどうか確認する必要があります。

記事の共有: