HttpClient5는 타임아웃/설정을 **“요청 단위(RequestConfig)”**와 **“커넥션(소켓) 단위(ConnectionConfig)”**로 나눠서 걸도록 설계돼 있다. 그리고 RequestConfig의 connect timeout은 deprecated로 밀어내고, connect는 ConnectionConfig로 옮겼다.
RequestConfig는 이름 그대로 “요청 실행(request execution)”에 대한 설정이다. 즉, “이번 요청을 수행하는 동안”의 정책들.
대표적으로:
중요: RequestConfig의 connect timeout은 deprecated다. 즉 “연결 성립까지”는 요청 정책으로 두지 말고, 커넥션 설정으로 옮기라는 뜻.
ConnectionConfig는 **“풀에서 생성되는 커넥션(소켓) 자체의 기본 성질”**을 정하는 설정이다. 즉, “이 커넥션이 어떤 소켓 타임아웃/TTL을 갖는가” 같은 레벨.
대표적으로:
connect timeout(새 TCP 연결 성립까지) 을 명시하고 싶다
→ ConnectionConfig.setConnectTimeout(...) (RequestConfig의 connect는 deprecated 방향)