サーブレット、CGI、PHPの比較
CGI(Common Gateway Interface)
言語
「クライアントからリクエストがあったら返す」というあくまでインターフェース(取り決め)なので、Webサーバー上で動作する言語であれば、どのような言語を使っても良い。一般的には、Python、Perl、PHP、Ruby等で記述する。
特徴
特定サーバーへの依存度が高く、他サーバーへの入れ替えの際は、プログラムの修正が必要になる。
サーブレット
言語
Javaで記述する。
パフォーマンスに優れる。
サーバー上で、Javaプロセスを起動して、スレッド単位でリクエストを処理するため。
CGIに比べて移植性が高い
プログラムの変更なしに、他サーバーに移行することができる。
PHP
CGIに比べてApacheのモジュールとしてそのまま動作させることができるので処理が高速になります。(もちろん、CGIプログラムとして動作させることも可能ですが。)
動作の仕組み
ここで扱う概念は、少しとっつきずらく感じるかもしれませんが、多くのユーザーで使うシステムをサーブレットで実装する場合は、必ず避けては通れない概念ですし、何よりこの概念を欠如していることで、致命的なバグを起こしてきた実例を、現場でも見ましたので、必ず覚えましょう!
マルチスレッド
同時に複数ユーザーからアクセスされる可能性があるので、「マルチスレッド」で動作します。
単一インスタンス
メモリ、パフォーマンスの観点から、複数インスタンスを生成するのではなく、一つのインスタンスが使いまわされます。
Tomcat起動時に、サーブレットのインスタンスが起動しますが、全てのリクエストに対して、一つのインスタンスで対応していきます。
この記事へのコメントはありません。