[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

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

CGI

pointこの用語のポイント

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

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

point動的にページを生成して返すよ

スポンサーリンク

簡単に書くよ

CGIとは

お寿司屋さん方式のホームページを実現するための仕組み
と言われても何がなんだか分かりませんね。

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

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

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

image piyo

詳しく書くよ

物凄いざっくり書くと、お寿司屋さん方式のホームページを作るための仕組みがCGIです。

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

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

それを踏まえて読み進めてください。

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

それに対し、CGIではページの作り置きをしません。
注文が入ると、Webサーバ(ホームページのファイルを置いておくコンピュータ)上にいるプログラムさんが、その場でホームページのファイルを作って渡してあげます。そのついでに他のお仕事をすることも可能です。

例えば、とあるパソコンさんから「ホームページのファイルをちょうだい」という注文が入ったとしましょう。

CGI

このとき、普通のホームページでは、事前に作っておいたファイルを渡すことになります。

CGI2

普通のホームページでやれることは「事前に作っておいたホームページのファイルを渡す」ただそれだけです。
誰から注文が来ても同じファイルを渡すことになります。

それに対してCGIでは、Webサーバ上にいるプログラムさんが、その場でホームページのファイルを作って渡してあげます。
ホームページのファイルを作るときには、ついでに他のお仕事をすることもできます。

CGI3

CGIでは、注文が入ってからホームページのファイルを作ります。
これが何を意味するかというと、お客さまによってページの見た目を変えたり、裏でこっそり何らかのお仕事をすることができるということです。

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

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

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

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


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

ただし!

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

実はですね。

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

本来は「Webサーバ上でプログラムを動かすための仕組み」を指す用語ですが「Webサーバ上で動くプログラム」も「CGI」と呼ばれているのが現状です。
どちらを指すかは、前後の文脈から判断してください。

image piyo2

一言でまとめるよ

まぁ「CGI」って単語が出てきたら「Webサーバ上にあるプログラムを動かすための仕組みなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク