Abstract out HttpRequest and HttpResponse