Rubyで書かれた WSGI (Webサーバのゲートウェイインターフェース)
Webアプリケーションフレームワークと、Webサーバの間でインターフェースを仲介する。WAF をこのインターフェース対応にしておけば、下の Webサーバをいろいろ取り替えるとかはインターフェースが面倒見てくれる。Rails(2.2から)、Merb ともに Rack 対応になってる。
RackUp -> .ru
Rack は Webアプリケーション(リクエストを受け取って、レスポンス文字列を返す函数)の大枠の枠組み、そしてセッションとか、エラーハンドラーとかいろいろな部品をサーバラックに積んでいくように組み込む。
Webサーバはソケットをリッスンして聴いた事に応じていろいろ処理を呼び出す。呼び出し方とか返し方とかのインターフェースが Rack になる。サーバ、アプリ共に行儀が良かったなら、インターフェースは仕様として存在してるだけで良かったわけだ。しかし、Ruby なのでその辺いろいろ混沌としてるので、でもそろそろそういう時期なので、実際の仲介処理まで行うプログラムとして Rack が存在している、そして流行り始めている。
Rack の各種 Webサーバのアダプターを読むと、それぞれの Webサーバプログラムのサーバ単体での使い方が分かってきたりする。
Rack自体の仕様文書は Rack本体の SPEC にある!