「Servlet」と「CGI」の違い

Servletはサーバー側で動作するJavaプログラム、CGIはスクリプト言語で実装された汎用的なサーバープログラムです。

Servlet

ServletはJavaで書かれたサーバー側プログラムで、Javaの仮想マシン上で実行されます。メモリに常駐し、リクエストごとにスレッドを生成するため高速です。Javaのオブジェクト指向機能を活用でき、大規模システムに適しています。

例:JavaのServletでユーザー認証を処理し、セッション管理をする。

CGI

CGIはCommon Gateway Interfaceの略で、Perl、Python、Shellスクリプトなど様々な言語で実装できます。リクエストごとに新しいプロセスを起動するため処理が重く、シンプルなスクリプトに向いています。汎用的で導入が容易です。

例:PerlのCGIスクリプトでフォーム送信を受け取り、メール送信する。

両者の違い

使う場面:Servletは高速処理が必要な大規模Webアプリケーション向けで、CGIはシンプルなスクリプト処理向けです。ニュアンス:Servletは言語がJavaに限定される専門的な技術、CGIは言語自由で汎用的です。対象:Servletはシステム開発者向け、CGIは初心者でも導入可能です。パフォーマンスではServletが優れています。

どちらを使うべき?判断のポイント

Javaの専門知識がある場合、大規模でパフォーマンスが重要ならServletを選択します。簡単なスクリプト処理やJavaが使えない環境ならCGIが適切です。最新のWebフレームワークも検討しましょう。

それぞれの語をさらに詳しく

語彙の星図で「Servlet」と「CGI」のつながりを探索する →