CGIって何?

[←前に戻る | ↑機能一覧へ | SSIへ→]

CGIはいろいろな人のデータを記録したり共有したりできるのが特徴です。
代表的なものは掲示板。
いろいろな人の発言を記録してみんなで見られる(共有してる)。CGIの基本です。
その他には

  • アクセスカウンタ
  • チャット
  • アンケート

このように、ホームページを開設するにあたってCGIはとても便利なものですし、
なくてはならない必須条件になっているともいえるでしょう。
ただ、このCGIはサーバーに大きな負荷をかけます。その為、プロバイダーによって
借りられるスペースや、無料で借りられるスペースの場合には、CGIの利用に大きな
制限を設けていたり、利用できなかったりと、自由に利用できないところも 少なくありません。
逆に自由に利用できる環境では、チャットの発言が出来ないほどに、重いという
事態に陥ることもあります。
(軽いチャットを求めてサーバーを転々と・・・という経験ありませんか?)

CGIの処理の流れは以下のようになります

(1) ブラウザがWWWサーバーに要求する
 ブラウザは特に「CGI を起動する」とは意識しません。
<a href="〜">や <img src="〜"> や<form action="〜">で記述された
アドレス(URL)を単にサーバーに要求するだけです。

(2) サーバーが CGI プログラムを起動する
 サーバーは受け取った URL を見て、これが CGI プログラムかどうか判断し、
CGI プログラムであるならこれを起動します。
判断の基準は拡張子が 「.cgi」 であるとかですが、サーバーの設定やプロバイダによって異なります。
CGI をサポートしていないサーバーやプロバイダもあります。

(3) CGI プログラムは結果を返す
CGI プログラムは標準出力に実行の結果を書き出します。
CGI プログラムの作り方次第で、複数のファイルを読み込んで連結したり、
カウンター値を演算してその結果を返すことができます。

(4) CGI プログラムの結果をブラウザに返す
CGIプログラムが書き出した内容は、WWW サーバーを経由してWeb ブラウザに
送信され、Web ブラウザはこれを表示します。


・ホームページ上をクリックして別のページが開くまでの流れ
Web
ブラウザ      
−要求→
←結果−
WWW
サーバー


・ホームページ上をクリックしてCGIが起動するまでの流れ
Web
ブラウザ      
−要求→
←結果−
WWW
サーバー
−起動→
←結果−
CGI
プログラム


CGI(Common Gateway Interface)とは
インターネット上で記録のやり取りができる仕組み。
つまり、 WWW サーバーがプログラムを起動する際の起動方法(環境変数の
名前や値)を定めた仕様の名称です。
この仕様に基づいて作成されたプログラムを「CGI プログラム」と呼びます。
「CGI プログラム」のうち、Perl、awk、sh などコンパイル作業が不要なスクリプト言語
で記述されたものを「CGI スクリプト」と呼びます。CGI プログラムは Perl で記述され
たものが多いですが、環境変数と標準入力を参照できて、結果を標準出力に
書き出せるものであれば、C言語、C++言語、VisualBasic でも記述することができます。


[←前に戻る | ↑機能一覧へ | SSIへ→]