The evolution of a ruby application server that we made ourselves.
Just get to the HTTP server equivalent of "Hello, world!".
Get some information out of the request.
Loop.
Figure out how to read a whole GET request.
Get browsers to stop bothering us for a favicon.
Figure out how to read a whole POST request.
Implement the POST/Redirect/GET so visitors can refresh the page after submitting.
Handle URL encoding without relying on anything outside of Ruby's standard library.