Chapter 15. Rack-based applications
This chapter covers
- Learning how HTTP requests work under the hood with Rack
- Mounting Rack applications inside a Rails application
- Introduction to the Sinatra web framework
- Intercepting requests with custom middleware
So far, this book has primarily focused on how to work with pieces of the Rails framework. In this chapter, we’ll look at something lower-level than that: the Rack web server interface.
Rack is the underlying web server framework that powers the request/response cycle found in Rails, but it isn’t a part of Rails itself. It’s completely separate, with Rails requiring the parts of Rack it needs. When your application runs, it’s run through a web server. When your web server receives a request, it will pass it off to Rack, as shown in figure 15.1.
Rack then determines where to route this request, and in this case it’s chosen to route to a specific application stack. The request passes through a series of pieces called middleware (covered in the final section of this chapter) before arriving at the application itself. The application will then generate a response and pass it back up through the stack to Rack, and then Rack will pass it back to the server, which will finally pass it back to the browser. All of this happens in lightning-quick fashion.