ServerX::AppServer
Inherits ServerX::PooledServer < Reference < Object
The production server: the pooled zero-alloc transport driving a stock
HTTP::Handler. Framing — keep-alive, pipelining, Content-Length and
chunked request bodies, body draining, hard limits — is decided by the
transport (see PooledServer); the handler sees a standard
HTTP::Server::Context and any Crystal framework works on top.
The HTTP::Server::Response is allocated once per connection and reused
across keep-alive requests via Response#reset (the same trick the
stdlib RequestProcessor plays). The request body is exposed through a
reader that serves straight from the connection buffer and streams from
the socket for bodies larger than the buffer.
Constants
Interned HTTP vocabulary: methods and common header names are a small
finite set, so the handler receives shared String literals instead of
fresh allocations (Crystal strings are immutable — sharing is safe;
HTTP::Headers keys are case-insensitive, so canonicalizing the case
of a known name is invisible to handlers). Unknown names fall back to
a normal allocation.