Simple HTTP request interface with optional caching