To summarize what we’ve learned so far, the Rack protocol powers the web in the Ruby world. It consists of two things:

  1. The Rack specification (protocol) provides a simple interface that allows web servers and applications to talk to each other.

  2. The Rack gem provides middleware, tools, and DSL that let us iteratively compose our Rack-compliant applications.

Additionally, Rack middleware components allow you to separate the application logic from peripheral concerns like authentication, logging, and error handling. You can use any middleware built by the community for everyday use cases.

With that understanding, let's get back to our web application. In the next lesson, we will build a simple router in Ruby.