webサーバとアプリサーバの違い
webサーバは翻訳を直で記すと以下のように表現されます。
「webサーバーはユーザーから送られてきた自サイトへのリクエストを受け取り、なんらかの処理を加えるプログラムです。そして、場合によってはあなたのRailsアプリケーションにリクエストを投げます。」
アプリサーバだと、
「アプリケーションサーバーはあなたのRailsアプリケーションを動かしているものです。」
関係性を例えると、ラジオDJがリスナーから音楽のリクエストを受け取ってそれを専用の機器で流すような感じです。
ここではラジオDJがwebサーバで専用の機器がアプリサーバです。
あとRailsに限って言えば、Rails用のアプリサーバは山のようにあります。
しかもそれぞれのアプリサーバの仕様が違うのでアプリを動かす時にはそれぞれのサーバのルールにのっとって設定しなければならないので余計にややこしくなります。
それを解決してくれるのがRackという機能です。
RackはRuby専用の万能通訳者のようなものでRubyに関するフレームワークとアプリサーバの間にたって通訳してくれるので、何の設定をしなくても作ったアプリを動かすことができる大変べんりな機能です。