「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

CGI

pointこの用語のポイント

pointWebサーバ上でプログラムを動かすための仕組みだよ

pointWebサーバ上で(クライアントからの要求に応じて)動くプログラムを指していることもあるよ

pointプログラムがその場でページを作って返すよ

point「Common Gateway Interface」の略だよ

スポンサーリンク

簡単に書くよ

CGI(読:シージーアイ)とは

(回らない)お寿司屋さん方式でホームページを表示するための仕組み
……と言われても分かりませんよね。

「ホームページをおくれよ」な注文に対して(何かお仕事をした後に)その場でホームページのファイルを作って返すための仕組み
であり

Webサーバ(ホームページのファイルが置いてあるコンピュータ)上に置いてある(クライアントからの要求に応じて動く)プログラムを動かすための仕組み
です。
よく分からなければ

ホームページでプログラムを動かすための仕組み
と解釈しても かまいません。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として、ホームページが表示される流れについて簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフトWebブラウザからホームページのファイルが置いてあるコンピュータWebサーバに対して「このページをおくれ」と お願いが出されます。

CGI

そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。

CGI2

お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。

CGI3

これが、ホームページが表示されるときの流れです。

以上を踏まえて

(回らない)お寿司屋さん方式でホームページを表示するための仕組み

が「CGI」です。

CGI4

「お寿司屋さん方式」とか言われても、今の時点ではサッパリ分からないと思います。
我慢して読み進めてください。
多分、そのうち分かります。

突然ですが、スーパーで売っているお寿司は作り置きです。
事前に作って用意しておくので、お客さまを見て、後からサビ抜きにしたり、ネタの種類を変えたりは、できません。

CGI5

回らないお寿司屋さんでは、注文が入ってから、お寿司を握ります。
お客さまの顔を見て酢飯やワサビの量を調整することも可能です。

CGI6

普通のホームページはスーパーで売っているお寿司と同じです。
作り置きです。
前もってホームページのファイルを用意しておいて、注文が入ったら、そのファイル(事前に作って用意しておいたファイル)を渡します。

CGI7

普通のホームページでやれることは

事前に作っておいたホームページのファイルを渡す

だけです。
誰から注文が来ても同じファイルを渡します。

一方、CGIではページを作り置きしません。
「このページをおくれ」な注文が来たときに、Webサーバ上にいるプログラムが、その場でホームページのファイルを作って返します。
ファイルを作るついでに他のお仕事をする場合も あります。

CGIの仕組みで返されるホームページのファイルは出来立てホヤホヤです。
お寿司屋さんのお寿司と同じです。

CGI8

繰り返しになりますが、CGIでは、注文が入ってからホームページのファイルを作ります。
これが何を意味するかというと

お客さまによってページの見た目を変えたり、裏でこっそり別のお仕事をやれる

ということです。

例えば「ホームページのファイルをちょうだい」と言ってきたのがピヨ太君だとしたら、作るファイルの中に「ピヨ太君いらっしゃい」と入れられます。
これがピヨ子さんだとしたら「ピヨ子さんいらっしゃい」になるでしょう。
注文する人に応じて、作るファイルの内容を変えられるのです。

また、ホームページのファイルを作るプログラムさんは、ファイルを作るついでに他のお仕事をやれます。
例えば「今日、ピヨ太君が遊びに来たよ」といった履歴ログを残したりですね。
他にも、メールを送ったり、何らかのデータ保存したり、いろいろなお仕事をやれます。

本来の意味で言えば、この一連の流れを実現するための仕組みがCGIです。

1.ホームページを見る人の注文をWebサーバ上にあるプログラムが受ける
2.注文を受けたプログラムが何かお仕事をする
3.注文を受けたプログラムがホームページのファイルを作って、ホームページを見る人に渡してあげる


の流れですね。
この流れを実現するためのあれやこれやがCGIです。

CGI9

ただし!です。

ここで1つ気を付けなくてはいけないことがあります。

実は、ですね。

この流れに出てくる「ホームページを見る人の注文を受けるプログラム」を指して「CGI」と呼んでいる人も少なくありません。
例えば「お問い合わせメールを送信するプログラムを作ってよ」の意図で「お問い合わせCGIを作ってよ」と言ったりですね。

CGI10

一応、頭の片隅にでも置いておいてあげてください。
本来は「Webサーバ上でプログラムを動かすための仕組み」がCGIです。
ただし「Webサーバ上で動くプログラム」を意図して「CGI」と表現している場合も あります。
どちらを指すかは文脈から判断してください。

なお、ここまでの説明がよく分からなかった人は

1.注文が来てからホームページのファイルを作る
2.注文が来たときにファイルを返す以外の仕事(処理)ができる


の2点を頑張って押さえてください。
それさえ押さえておけば、そこまで困ることはないと思います。

あと「Common Gateway Interface(コモン・ゲートウェイ・インターフェース)」の略で「CGI」です。

CGI11

※「Common Gateway Interface」を何となく日本語にすると「共通の出入口の接点」となります。[詳細]

無理に覚える必要は、ありませんけどね。
気が向いたら、頭の片隅にでも置いておいてあげてください。


image piyo2

一言でまとめるよ

まぁ「CGI」って単語が出てきたら「Webサーバ(ホームページのファイルが置いてあるコンピュータ)上にあるプログラムを動かすための仕組みなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像014
書籍画像057

おまけ

■訳してみるよ

「CGI」は「Common Gateway Interface(コモン・ゲートウェイ・インターフェース)」の略です。
「common(コモン)」の意味は「共通の」とか「共同の」とかです。
「gateway(ゲートウェイ)」の意味は「門」とか「出入口」とか「玄関」とかです。
「interface(インターフェース)」の意味は「接点」とか「境界面」とか「接触面」とかです。
何となく くっつけると

共通の出入口の接点

となります。

……よく分かりませんね。




書籍画像
わわわ説明術コラム
宣伝だよ
優れたエンジニアがコミュニティの中でしていること
わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本