Web技術の基礎
CGIでは、Webサーバがリクエストを受けるたびにプログラムを新しいプロセスとして起動し、処理が終わるとプロセスは終了する。FastCGIやアプリケーションサーバの方式が、CGIと比べて多くのリクエストを効率よく処理できる主な理由はどれか。
- Aプログラムのプロセスを常駐させて使い回すので、リクエストごとのプロセスの起動や初期化の手間を省ける
- BHTTPの代わりにUDPで利用者と通信するので、リクエストのたびにTCPの接続を確立する手間がなくなる
- Cプログラムをブラウザに送って、ブラウザの中で実行させるので、サーバではリクエストの処理を行わなくてよい
答えと解説を見る
正解:A. プログラムのプロセスを常駐させて使い回すので、リクエストごとのプロセスの起動や初期化の手間を省ける
CGIは、Webサーバがリクエストの情報を環境変数や標準入力でプログラムに渡し、プログラムが標準出力に書いた結果を応答として返す、単純な仕組みです。ただし、リクエストのたびにプロセスを起動し、言語の処理系の読み込みやデータベースへの接続を毎回やり直すので、リクエストが多いと負荷が大きくなります。FastCGIや、各言語のアプリケーションサーバは、プログラムを常駐させ、Webサーバとソケットなどでつないで、多くのリクエストを繰り返し処理します。
- A. 正しい。プロセスを常駐させて、起動と初期化の手間をリクエストごとに繰り返さずに済みます。
- B. FastCGIやアプリケーションサーバの方式でも、利用者とはHTTPで通信します。違いは、サーバの中でプログラムを動かす方法です。
- C. プログラムはサーバで動きます。ブラウザで動くのは、ページに含まれるJavaScriptです。