これは、Webアプリの要求/応答メカニズムを理解するためのものです。クライアントはリクエスト(GET / POST)をWebアプリに送信します。Webアプリには、アプリケーション固有のプログラムのコンテナーとして機能するアプリケーションサーバーが実行されています。アプリサーバーがFastCGI/CGIプロセスを開始する部分がわかりません。CGIの重要性は何ですか?サーバーは、完全な要求処理メカニズムを処理するように設計されていませんか?リクエスト処理のどの部分がCGIに依存していますか?
2 に答える
私はここで同様の質問をしました(ただし、概念よりも実装に近いですが): WebサーバーからCGI/FastCGIプロセスへのHTTP要求のディスパッチ
ただし、途中で学んだことは次のとおりです。CGIは、HTTP/Webサーバーが外部プログラムと通信する方法を定義する一連の「標準」です。標準という言葉に注意してください!アウトアンドアウトプロトコル(HTTP、TCPなど)ではありませんが、HTMLを生成するほとんどの外部プログラム(Ruby、PHP、Pythonなど)が一連の標準に準拠しているため、ほぼ1つのプロトコルです。
CGIの詳細については、http: //hoohoo.ncsa.illinois.edu/cgi/intro.htmlを参照してください。
そしてここ: http ://www.w3.org/CGI/
FastCGIは、CGIプロセスの処理方法を改善したものです。つまり、FastCGIプロセスがメモリにロードされたままになる時間が長くなるため、メモリにロードされている間に複数のリクエストを処理できます。基本的なCGI環境のロードで失われる時間とリソースは、FastCGIプロセスではそれほど頻繁には発生しないため、明らかにこれはより効率的に機能します。
少し軌道から外れており、Rails固有ですが、これは興味深い記事です:http: //izumi.plan99.net/blog/index.php/2007/04/05/saving-memory-in-ruby-on-rails/