http server

Tests pass.