CGI
Webサーバ上でプログラムを動かすための仕組みだよ
Webサーバ上で(クライアントからの要求に応じて)動くプログラムを指していることもあるよ
プログラムがその場でページを作って返すよ
「Common Gateway Interface」の略だよ
簡単に書くよ
CGI(読:シージーアイ)とは
(回らない)お寿司屋さん方式でホームページを表示するための仕組み
……と言われても分かりませんよね。
「ホームページをおくれよ」な注文に対して(何かお仕事をした後に)その場でホームページのファイルを作って返すための仕組み
であり
Webサーバ
(ホームページのファイルが置いてあるコンピュータ)上に置いてある(クライアントからの要求に応じて動く)プログラムを動かすための仕組み
です。
よく分からなければ
ホームページでプログラムを動かすための仕組み
と解釈しても かまいません。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として、ホームページが表示される流れについて簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。
これが、ホームページが表示されるときの流れです。
以上を踏まえて
(回らない)お寿司屋さん方式でホームページを表示するための仕組み
が「CGI」です。
「お寿司屋さん方式」とか言われても、今の時点ではサッパリ分からないと思います。
我慢して読み進めてください。
多分、そのうち分かります。
突然ですが、スーパーで売っているお寿司は作り置きです。
事前に作って用意しておくので、お客さまを見て、後からサビ抜きにしたり、ネタの種類を変えたりは、できません。
回らないお寿司屋さんでは、注文が入ってから、お寿司を握ります。
お客さまの顔を見て酢飯やワサビの量を調整することも可能です。
普通のホームページはスーパーで売っているお寿司と同じです。
作り置きです。
前もってホームページのファイルを用意しておいて、注文が入ったら、そのファイル(事前に作って用意しておいたファイル)を渡します。
普通のホームページでやれることは
事前に作っておいたホームページのファイルを渡す
だけです。
誰から注文が来ても同じファイルを渡します。
一方、CGIではページを作り置きしません。
「このページをおくれ」な注文が来たときに、Webサーバ上にいるプログラムが、その場でホームページのファイルを作って返します。
ファイルを作るついでに他のお仕事をする場合も あります。
CGIの仕組みで返されるホームページのファイルは出来立てホヤホヤです。
お寿司屋さんのお寿司と同じです。
繰り返しになりますが、CGIでは、注文が入ってからホームページのファイルを作ります。
これが何を意味するかというと
お客さまによってページの見た目を変えたり、裏でこっそり別のお仕事をやれる
ということです。
例えば「ホームページのファイルをちょうだい」と言ってきたのがピヨ太君だとしたら、作るファイルの中に「ピヨ太君いらっしゃい」と入れられます。
これがピヨ子さんだとしたら「ピヨ子さんいらっしゃい」になるでしょう。
注文する人に応じて、作るファイルの内容を変えられるのです。
また、ホームページのファイルを作るプログラムさんは、ファイルを作るついでに他のお仕事をやれます。
例えば「今日、ピヨ太君が遊びに来たよ」といった履歴(ログ)を残したりですね。
他にも、メールを送ったり、何らかのデータを保存したり、いろいろなお仕事をやれます。
本来の意味で言えば、この一連の流れを実現するための仕組みがCGIです。
1.ホームページを見る人の注文をWebサーバ上にあるプログラムが受ける
2.注文を受けたプログラムが何かお仕事をする
3.注文を受けたプログラムがホームページのファイルを作って、ホームページを見る人に渡してあげる
の流れですね。
この流れを実現するためのあれやこれやがCGIです。
ただし!です。
ここで1つ気を付けなくてはいけないことがあります。
実は、ですね。
この流れに出てくる「ホームページを見る人の注文を受けるプログラム」を指して「CGI」と呼んでいる人も少なくありません。
例えば「お問い合わせメールを送信するプログラムを作ってよ」の意図で「お問い合わせCGIを作ってよ」と言ったりですね。
一応、頭の片隅にでも置いておいてあげてください。
本来は「Webサーバ上でプログラムを動かすための仕組み」がCGIです。
ただし「Webサーバ上で動くプログラム」を意図して「CGI」と表現している場合も あります。
どちらを指すかは文脈から判断してください。
なお、ここまでの説明がよく分からなかった人は
1.注文が来てからホームページのファイルを作る
2.注文が来たときにファイルを返す以外の仕事(処理)ができる
の2点を頑張って押さえてください。
それさえ押さえておけば、そこまで困ることはないと思います。
あと「Common Gateway Interface(コモン・ゲートウェイ・インターフェース)」の略で「CGI」です。
※「Common Gateway Interface」を何となく日本語にすると「共通の出入口の接点」となります。[詳細]
無理に覚える必要は、ありませんけどね。
気が向いたら、頭の片隅にでも置いておいてあげてください。
一言でまとめるよ
まぁ「CGI」って単語が出てきたら「Webサーバ
(ホームページのファイルが置いてあるコンピュータ)上にあるプログラムを動かすための仕組みなんだな~」と お考えください。
おまけ
■訳してみるよ
「CGI」は「Common Gateway Interface(コモン・ゲートウェイ・インターフェース)」の略です。
「common(コモン)」の意味は「共通の」とか「共同の」とかです。
「gateway(ゲートウェイ)」の意味は「門」とか「出入口」とか「玄関」とかです。
「interface(インターフェース)」の意味は「接点」とか「境界面」とか「接触面」とかです。
何となく くっつけると
共通の出入口の接点
となります。
……よく分かりませんね。






