We build an HTTP server that can serve static files from disk, as well as dynamic applications in the style of cgi-bin. The network server component is built using socket system calls (socket, setsockopt, bind, listen, and accept), rather than using the pre-made TCP servers available in the Ruby standard library.