an http request abstraction.