Fast Common Gateway Interface
CGIの改良版だよ
一度動き出したプログラムは、しばらくメモリ上に待機させるよ
起動/終了処理が減る分、CGIと比較して処理の高速化と負荷の軽減が見込めるよ
「FastCGI」と表現されるのが一般的だよ
簡単に書くよ
Fast Common Gateway Interface(読:ファスト・コモン・ゲートウェイ・インターフェース)とは
いわゆる「FastCGI」のこと。
用語の中身としては
CGI
(Webサーバ上でプログラムを動かすための仕組み)の改良版
です。
もう少し具体的に書くと
役割はCGIと同じだけど、一度起動したプログラムをしばらく待機させることで、プログラムの起動と終了にかかる手間を減らし、動きを速くしたりWebサーバ
(ホームページのファイルが置いてあるコンピュータ)の負荷を軽減したりできる仕組み
です。
詳しく書くよ
最初に留意事項です。
「FastCGI」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
FastCGIの正式名称(?)が「Fast Common Gateway Interface」です。
「Fast Common Gateway Interface」を省略したのが「FastCGI」ね。
※「Fast Common Gateway Interface」を何となく日本語にすると「速いCGI」となります。[詳細]
以上が「FastCGI」の意味を知っている人向けの説明です。
「FastCGIって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として「CGI」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
CGIは「(回らない)お寿司屋さん方式のホームページを実現するための仕組み」です。
ホームページのファイルが置いてあるコンピュータ(Webサーバ)上にあるプログラムを実行して、動的にホームページを作るための仕組みです。
例えば、そうですね。
とあるパソコンさんから「ホームページのファイルをちょうだい」という注文が入ったとしましょう。
普通のホームページでは、事前に作っておいたファイルを渡します。
渡すファイルは作り置きです。
普通のホームページでやれることは
事前に作っておいたホームページのファイルを渡す
だけです。
誰から注文が来ても同じファイルを渡します。
スーパーで売っている作り置きのお寿司のイメージです。
それに対して、CGIではページを作り置きしません。
「ホームページのファイルをちょうだい」な注文が入ると、Webサーバ上にいるプログラムさんが、その場でホームページのファイルを作って渡します。
ファイルを作るついでに他のお仕事をする場合も あります。
CGIでやれることは
(あれやこれやの処理をやった後で)ホームページのファイルを作って渡す
です。
その場で作るので、相手によってファイルの内容を変えたりできます。
その場で握ってくれるお寿司屋さんのお寿司のイメージです。
以上を踏まえて、本題に入ります。
CGIの仕組みにおいて、Webサーバ上にいるプログラムさんは普段は寝ています。
「ホームページのファイルをちょうだい」の注文が入ると起きて仕事をしますが、終わるとまた寝てしまいます。
つまり、注文が入る度に起きる時間と寝る時間が必要になるわけです。
これは、ちょっと非効率ですよね?
そこで、プログラムさんに、一度起きたらしばらく寝ないようにお願いしました。
これで、プログラムさんが起きている間に次の注文が入れば、すぐに次のお仕事を始められます。
このような
一度動き出したプログラムをしばらく待機させておくCGIっぽい仕組み
が「Fast Common Gateway Interface」です。
上でも書きましたが、一般的には「FastCGI」と表現されます。
※本ページでも以降は「FastCGI」と表現します。
FastCGIの役割はCGIと同じです。
ただし、一度起きたプログラムさんにしばらく起きていてもらうことで、起きる時間と寝る時間を短縮できます。
それに伴い、処理の高速化と負荷の軽減が見込める理屈です。
これでFastCGIの説明は終わりですが「『寝る』とか『起きる』とか、よくわかんねーよ!」な人のために、もう少し小難しい言い回しでも説明しておきますね。
CGIはリクエストがある度にプログラムの起動/終了処理が発生します。
よって、続けざまに100回のリクエストが来ると、起動/終了処理が100回発生することになります。
これは少し非効率です。
そこで、CGIを改良して、一度起動したプログラムは一定期間、メモリ上に展開しておくことにしました。
この
CGIを改良して、一度起動したプログラムは一定期間、メモリ上に展開しておくことにした仕組み
がFastCGIです。
FastCGIはCGIと比較して起動/終了処理にかかる負荷を軽減できます。
続けざまに100回のリクエストが来たとしても起動/終了処理が1回で済むからです。
また、起動/終了処理がないということは、すぐに仕事に取りかかれるということです。
その分、処理の高速化が見込めます。
大雑把な説明としては、そんなところですかね。
一言でまとめるよ
まぁ「Fast Common Gateway Interface」って単語が出てきたら「FastCGI
(一度動き出したプログラムはしばらく待機させて、起動・終了処理を省略するようにした、CGIの改良版)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「fast(ファスト)」の意味は「速い」とかです。
「common(コモン)」の意味は「共通の」とか「共同の」とかです。
「gateway(ゲートウェイ)」の意味は「門」とか「出入口」とか「玄関」とかです。
「interface(インターフェース)」の意味は「接点」とか「境界面」とか「接触面」とかです。
何となく くっつけると
速い共通の出入口の接点
となります。
……よく分かりませんね。






