3

これは、Webアプリの要求/応答メカニズムを理解するためのものです。クライアントはリクエスト(GET / POST)をWebアプリに送信します。Webアプリには、アプリケーション固有のプログラムのコンテナーとして機能するアプリケーションサーバーが実行されています。アプリサーバーがFastCGI/CGIプロセスを開始する部分がわかりません。CGIの重要性は何ですか?サーバーは、完全な要求処理メカニズムを処理するように設計されていませんか?リクエスト処理のどの部分がCGIに依存していますか?

4

2 に答える 2

1

私はここで同様の質問をしました(ただし、概念よりも実装に近いですが): 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/

于 2010-01-29T08:40:42.747 に答える
0

クライアント(通常はブラウザ)とWebサーバー間の通信はhttpを介して行われます。Webサーバーは要求を受信すると、要求が何を要求しているかを分析し、適切な出力を返します。要求はディスクに保存されているファイルに対して行うことができ、サーバーはファイルの内容を返すだけです。リクエストがプログラム(CGI)を識別すると、それを実行し、プログラムの出力をクライアントに返します。

于 2009-07-15T13:47:57.253 に答える