RubyでWebアプリを開発する時に、RackとかSinatraを使うためのメモ。
Rack:
2014-02-10時点での認識:(間違ってたらスミマセン、教えて頂ければ随時修正します)
RubyでWeb開発をする場合、Webサーバ側は幅広い選択肢がある。CGI, FCGI, WEBrick, Mongrelなど。
しかし、HTTPリクエストやレスポンスの処理はWebサーバごとに変わるため、Webサーバに依存した書き方をしてしまうとアプリケーションの移植性が損なわれてしまう。
そこで、Webサーバ間の差異を吸収し、一般的なレベルで抽象化して扱える、中間層としてRackが存在する。
Webアプリケーションや、WebアプリのフレームワークはRackが提供するクラスライブラリや抽象化レイヤーを扱うことで、RackがサポートしているWebサーバであれば移植性を確保できる。
(多分、現実は色々とエッジな処理をしようとするとそうも行かないんだろうけど、一般的なレベルではおおよそ上手く巻き取ってくれてるのでは。でなければここまでメジャーになることはないでしょうし・・・)
Sinatra:
シンプルなWebアプリフレームワークだが、静的ファイルのサポートやテンプレートエンジンもいくつかサポートしていて、小回りが効く。