http server built from the socket layer up (for learning purposes)