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

Fast Common Gateway Interface

pointこの用語のポイント

pointCGIの改良版だよ

point一度動き出したプログラムは、しばらくメモリ上に待機させるよ

point起動/終了処理が減る分、CGIと比較して処理の高速化と負荷の軽減が見込めるよ

point「FastCGI」と表現されるのが一般的だよ

スポンサーリンク

簡単に書くよ

Fast Common Gateway Interface(読:ファスト・コモン・ゲートウェイ・インターフェース)とは

いわゆる「FastCGI」のこと。
用語の中身としては

CGI(Webサーバ上でプログラムを動かすための仕組み)の改良版
です。
もう少し具体的に書くと

役割はCGIと同じだけど、一度起動したプログラムをしばらく待機させることで、プログラムの起動と終了にかかる手間を減らし、動きを速くしたりWebサーバ(ホームページのファイルが置いてあるコンピュータ)の負荷を軽減したりできる仕組み
です。


image piyo

詳しく書くよ

最初に留意事項です。
FastCGI」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
FastCGIの正式名称(?)が「Fast Common Gateway Interface」です。
Fast Common Gateway Interface」を省略したのが「FastCGI」ね。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)

※「Fast Common Gateway Interface」を何となく日本語にすると「速いCGI」となります。[詳細]

以上が「FastCGI」の意味を知っている人向けの説明です。

「FastCGIって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

ちょっと休憩6

それでは、いってみましょう。
まずは予備知識として「CGI」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

CGIは「(回らない)お寿司屋さん方式のホームページを実現するための仕組み」です。
ホームページのファイルが置いてあるコンピュータWebサーバ上にあるプログラムを実行して、動的にホームページを作るための仕組みです。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)2

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

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)3

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

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)4

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

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

だけです。
誰から注文が来ても同じファイルを渡します。
スーパーで売っている作り置きのお寿司のイメージです。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)5

それに対して、CGIではページを作り置きしません。
「ホームページのファイルをちょうだい」な注文が入ると、Webサーバ上にいるプログラムさんが、その場でホームページのファイルを作って渡します。
ファイルを作るついでに他のお仕事をする場合も あります。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)6

CGIでやれることは

(あれやこれやの処理をやった後で)ホームページのファイルを作って渡す

です。
その場で作るので、相手によってファイルの内容を変えたりできます。
その場で握ってくれるお寿司屋さんのお寿司のイメージです。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)7

以上を踏まえて、本題に入ります。

CGIの仕組みにおいて、Webサーバ上にいるプログラムさんは普段は寝ています。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)8

「ホームページのファイルをちょうだい」の注文が入ると起きて仕事をしますが、終わるとまた寝てしまいます。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)9

つまり、注文が入る度に起きる時間と寝る時間が必要になるわけです。

これは、ちょっと非効率ですよね?

そこで、プログラムさんに、一度起きたらしばらく寝ないようにお願いしました。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)10

これで、プログラムさんが起きている間に次の注文が入れば、すぐに次のお仕事を始められます。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)11

このような

一度動き出したプログラムをしばらく待機させておくCGIっぽい仕組み

が「Fast Common Gateway Interface」です。

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)12

上でも書きましたが、一般的には「FastCGI」と表現されます。
※本ページでも以降は「FastCGI」と表現します。

FastCGIの役割はCGIと同じです。
ただし、一度起きたプログラムさんにしばらく起きていてもらうことで、起きる時間と寝る時間を短縮できます。
それに伴い、処理の高速化と負荷の軽減が見込める理屈です。

これでFastCGIの説明は終わりですが「『寝る』とか『起きる』とか、よくわかんねーよ!」な人のために、もう少し小難しい言い回しでも説明しておきますね。

CGIはリクエストがある度にプログラムの起動/終了処理が発生します。
よって、続けざまに100回のリクエストが来ると、起動/終了処理が100回発生することになります。

これは少し非効率です。

そこで、CGIを改良して、一度起動したプログラムは一定期間、メモリ上に展開しておくことにしました。
この

CGIを改良して、一度起動したプログラムは一定期間、メモリ上に展開しておくことにした仕組み

がFastCGIです。

FastCGIはCGIと比較して起動/終了処理にかかる負荷を軽減できます。
続けざまに100回のリクエストが来たとしても起動/終了処理が1回で済むからです。

また、起動/終了処理がないということは、すぐに仕事に取りかかれるということです。
その分、処理の高速化が見込めます。

大雑把な説明としては、そんなところですかね。


image piyo2

一言でまとめるよ

まぁ「Fast Common Gateway Interface」って単語が出てきたら「FastCGI(一度動き出したプログラムはしばらく待機させて、起動・終了処理を省略するようにした、CGIの改良版)のことなんだな~」と お考えください。

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

おまけ

■訳してみるよ

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

速い共通の出入口の接点

となります。

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




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
つくって、壊して、直して学ぶ Kubernetes入門
サイバー忍者入門 忍者・スパイ・軍隊・ハッカーに学ぶ フルスタック・ハッキング