deep understand http client