CGI が「時代遅れ」であることは、多くのページ ビューを持つ大規模で複雑なサイトを運営している場合にのみ問題になります。
多くの人は、CGI が時代遅れであるという考えを押し付けていますが、CGI が何であるかを本当に理解していません。CGI は本質的に Perl ベースのテクノロジであるという誤解が広まっています。多くの人が CGI を、自分がサポートしている言語をサポートする Perl に対するカルト的な攻撃を行う手段として攻撃しています。真の技術者になりたい場合は、基本的な問題を理解し、状況の事実に基づいて選択を行う必要があります。
CGI は、インタラクティブなページを任意の言語( befungeを含む) で作成できる Web サーバーとのインターフェースです。サーバーが CGI スクリプトによって制御されるページの要求を受け取ると、サーバーはスクリプトを実行し、要求元に結果を返します。
プログラミング言語が実行のたびに VM、インタープリター、またはコンパイラーをロードする必要がある場合、ページにアクセスするたびにこの起動時間が必要になります。
FastCGI、mod_php、mod_perl などの CGI アクセラレータは、インタープリター/VM を常にメモリに保持し、ライブラリをロードしたままにし、スクリプトのバイトコードをキャッシュして、スクリプトの起動オーバーヘッドを削減します。
簡単な個人や趣味のサイトを作るならCGIで十分です。PHPも同様です。
サイトがより高速なテクノロジを必要とするように成長する場合は、mod_perl、FastCGI、またはその他の CGI アクセラレーション テクノロジに移行できます。
使用する言語は、提供されるツールと、それらがニーズにどのように適合するかによって決定する必要があります。
- 必要な機能のリストを作成します。
- 契約違反者のリストを作成します。
- 次に、これら 2 つのリストに対して、使用可能なツールセットをそれぞれ確認してください。
- どれが一番よく出ますか?試して。
- それは吸う?それをリストから外して、ステップ 4 に戻ります。
また、befungeを使用しないことをお勧めします。可能だからといって、それを使うべきだという意味ではありません。
更新: mpeters が指摘しているように、mod_perl、mod_php、mod_ruby などは、単なる CGI アクセラレーターではありません。Apache API へのアクセスを提供します。それらは CGI アクセラレータとして機能しますが、さらに多くのことができます。
FastCGI は純粋な CGI アクセラレータです。
更新 2: PHP と CGI は相互に排他的ではありません。 PHP は CGI としてインストールできます。PHP は、FastCGI でよく使用されます。