Rack là interface chuẩn giữa Ruby web framework và web server (Puma, Unicorn, Passenger). Mọi Rack app là một object có method call(env) trả về [status, headers, body].
Rails là một Rack application — khi Puma nhận request, nó gọi Rails app qua Rack interface.
ruby
# config.ru — entry point Rack
require_relative "config/environment"
run Rails.applicationMiddleware stack: Rails dùng Rack middleware chaining — mỗi middleware wrap request/response (logging, CSRF check, session, gzip compression, ...). Xem bằng rails middleware.
Hiểu Rack giúp debug middleware, viết custom middleware, và tích hợp với các Rack-compatible library như Warden (Devise dùng bên dưới).