2017-01-19 4 views
0

私はフレームワークが何であるか分かっていると思いますし、Rubyのような有名なフレームワークが春、私はWebサーバーの意味Webアプリケーションサーバー。フレームワークは、Webサーバ(Apacheやnginxの)からのデータベース処理要求に関連する多くのダイナミックな作品をやっているので、私はWAS(Web Application Server)とWebフレームワークの意味を混同しています

が、私は私のために私はフレームワークはの一種であると考え、WASとフレームワークの間で異なっているのか分からないがWAS

私は、Webプログラミングにおけるこれら2つの部分の関係に混乱しています。

あなたはそれを説明できますか?

答えて

1

基本的に、フレームワークはhttpリクエスト(あなたが言ったようにデータベースを処理することを含む)に対する応答を提供する責任しか負いません。しかし、新しいhttp要求が到着するたびに、Railsは新しいスレッド(またはいくつかの実装、プロセス)を開く責任を負いません。これはアプリケーションサーバ(Puma、Webrick、Unicornなど)によって行われます。これは並行性(同時に複数の要求に同時にアプリケーションを提供する能力)と呼ばれ、純粋にアプリケーションサーバの仕事です。もう一つは、httpリクエストの理解(および解析)です.Railsはhttpを実装していないため、httpを実装するアプリケーションサーバーから準備ができたリクエストを受け取ります。

ルビーランドでは、各部分のジョブはラックプロトコルhttps://rack.github.io/によって定義されています。 Railsは、ラックアプリケーションとして、(HTTPリクエストを使用して)「何か」(Webアプリケーションサーバー)が「呼び出し」するのを待ってから応答を返します。

まとめ:アプリケーションサーバーは、RailsへのHTTPリクエストを処理するためにスレッド化またはマルチプロセッシングを処理する必要があります(アプリケーションサーバーは基本的に常に新しい要求をソケットでリッスンし、プロセスをフォークするか、スレッド、またはその両方)。アプリケーションサーバーによって異なります。したがって、アプリケーションサーバーはhttp(HTTPリクエストを解析できるように)を理解する必要があるため、それをRailsにサーバーすることもできます。

WebフレームワークのRailsは、http要求を処理して応答を返すだけです。

+0

私はあなたに感謝します – Jgj1018

関連する問題