Webアプリケーションの原点とも言えるCGIの仕組みを紹介してきました。非常にシンプルで便利な機能ですが、欠点もあります。
- CGIの長所 -
・ |
作成が容易 OSの基本機能である標準入力と標準出力、コマンドラインなどを用いてデータを受け渡しするため、プログラムの作成が容易です。 |
・ |
実装が容易 ユーザーインターフェイスとCGIの実行部分はHTMLで記述するため、実装も容易です。 |
・ |
言語の選択肢が多い CGIプログラムは「OS上で動作する普通のプログラム」ですから、サーバーOSで動作し、標準入出力を扱える言語なら、何を使っても構いません。 UNIXなら、サンプルで取り上げたperlやawkなどのスクリプト言語の他、C言語やC++なども使えます。Windowsでは、Visual C++、Visual Basic、Delphiなど一般的な開発ツールが使えます。Windows版のperlやWindows Scripting Hostを使ってVBScriptやJScriptで記述することもできます。 |
- CGIの短所 -
・ |
処理が遅い Webサーバー側で動作するプログラムがすべての処理を担当するため、多数のクライアントから処理要求が集中すると、どうしても処理が遅くなってしまいます。要求ごとにプログラムが起動されるため、サーバーの負荷が大きくなるのです。 |
・ |
処理能力はサーバーに依存 プログラムの処理能力はサーバーに依存します。クライアント・コンピュータがどれだけ高性能でも、ほとんど意味はありません。クライアントはデータの送信と結果の表示しか行わないからです。 このことを逆に見れば、サーバーの処理能力さえ強化すれば、処理全体の効率を向上させることができるということになりますから、一概にデメリットとは言えません。 |
・ |
セキュリティ 万一、CGIプログラムが不正な動作をした場合、その影響がWebサーバーに及んで、他のプログラムやネットワーク処理全体を不安定にする可能性も否めません。 一部の管理権限を持つユーザーだけがCGIを設定できるのであれば、こういった問題はある程度回避できます。しかし、一般ユーザーにもCGIを使えるようにした場合、不完全なプログラムだけではなく、ウィルスなど悪質なプログラムが混入する可能性も出てきます。 |
- CGIを活かせる環境 -
メリットとデメリットは裏表の関係です。メリットを活かせるような環境と処理なら、CGIを使う価値は十分にあります。
基本的にCGIは、以下のような環境、目的で用いるとよいでしょう。
・ |
アクセスが多数集中しないような環境と処理 |
・ |
高性能なWebサーバーを設置できる環境 |
・ |
あまり大量のデータを扱わない、シンプルな処理 |
|
|
|