webサーバー、アプリケーションサーバー、Rackといった仕様や概念と、WEBrick、Unicorn、Pumaといった実装の関係が頭の中で結びつきません
前置き
(やや混乱しているので質問がわかりづらいかもしれません)
大昔PerlでCGIによるWebアプリを作ったときに、ApatchでPerlで書いたプログラムを呼び出していた記憶があります。
Rails
Railsですが、Webサーバーとアプリケーションサーバーが分かれている印象です。
CGI
上記CGIのやり方ではWebサーバーは存在しますが、アプリケーションサーバーは存在しないと認識しています。
Webサーバーとアプリケーションサーバーで混乱
Railsですと
Webサーバー
例えばRack (←回答よりこれは勘違い)
アプリケーションサーバー
例えばUnicorn、Puma
といったように、ソフトウェアとしてWebサーバーとアプリケーションサーバーが分かれていると認識しています。
Webサーバーとアプリケーションサーバーを同時に満たすものがある?
WEBrickですが、Webサーバーとアプリケーションサーバーどちらの役目もしているような気がしていて混乱しています。(dev環境だとアプリケーションサーバーなど意識せずWEBrickだけで動いている気がする)
Rackは各種アプリケーションサーバーの仕様の乱立を避けるために生まれた?
各種アプリケーションサーバーがどんどん出てきたときに、デプロイの作業がバラバラとなり、それを救うためにRackが生まれたというような内容を見かけました。
となると、アプリケーションサーバーの違いを吸収するためにWebサーバー(Rack)を用意するということでしょうか?
(そもそもWebサーバーはHTTPなどのリクエストを受け取るものでアプリケーションサーバーの違いを吸収するものではないような...)