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

FastCGI

pointこの用語のポイント

pointCGIの改良版だよ

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

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

point「Fast Common Gateway Interface」の略だよ

スポンサーリンク

簡単に書くよ

FastCGI(読:ファストCGI)とは

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

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


image piyo

詳しく書くよ

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

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

FastCGI

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

FastCGI2

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

FastCGI3

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

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

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

FastCGI4

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

FastCGI5

CGIでやれることは

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

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

FastCGI6

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

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

FastCGI7

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

FastCGI8

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

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

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

FastCGI9

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

FastCGI10

このような

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

が「FastCGI」です。

FastCGI11

Fast Common Gateway Interface(ファスト・コモン・ゲートウェイ・インターフェース)」の略で「FastCGI」ね。
気が向いたら、覚えてあげてください。

FastCGI12

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

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

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

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

これは少し非効率です。

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

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

がFastCGIです。

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

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

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


image piyo2

一言でまとめるよ

まぁ「FastCGI」って単語が出てきたら「一度動き出したプログラムはしばらく待機させて、起動・終了処理を省略するようにした、CGI(Webサーバ上でプログラムを動かすための仕組み)の改良版なんだな~」と お考えください。

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

おまけ

■訳してみるよ

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

速い共通の出入口の接点

となります。

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




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門
サイバーセキュリティお嬢様と学ぶ 情報セキュリティの基本