Overview

The HTTP::Server::Response object has status and headers properties that can be
configured before writing the response body. Once response output is written,
changing the status and headers properties has no effect.

The handler given to a server can simply be a block that receives an HTTP::Server::Context,
or it can be an HTTP::Handler. An HTTP::Handler has an optional next handler,
so handlers can be chained. For example, an initial handler may handle exceptions
in a subsequent handler and return a 500 status code (see HTTP::ErrorHandler),
the next handler might log the incoming request (see HTTP::LogHandler), and
the final handler deals with routing and application logic.