httpclient 인스턴스 수명주기 : 단일 예제 모드 또는 모든 요청이 구축 되었습니까? <..>
Web API 클라이언트 응용 프로그램에서 httpclient 객체의 최상의 수명주기는 논란의 여지가 있습니다. 어떤 사람들은 각 통화마다 새 예제를 만드는 것을 옹호하는 반면, 다른 사람들은 단일 예제를 여러 번 옹호하고 재사용하는 것을 옹호합니다.
새로운 httpclient 를 만듭니다
: 를 포함하여 일부 비용을 소개하기 위해 각 요청에 대해 새로운 httpclient를 만듭니다.
자격 증명 및 쿠키 관리 :
httpclienthandler 유지 보수 자격 증명 및 쿠키,이 자격 증명 및 쿠키는 재사용을 위해 설계되었습니다. 각 요청에 대해 이러한 값을 별도로 재설정하는 효율은 낮습니다.
기본 요청 헤더 : 새 httpclient 인스턴스 (예 : 수락 헤드)에서 기본 요청 헤더 (예 : 수락 헤더)를 구성합니다.
httpmessageHandlers : 로그 레코드, 던지기 또는 기타 수평 종파에 httpmessageHandlers를 사용하는 경우 각 새로운 httpclient에서 다시 구성해야합니다.
TCP/IP 연결 관리 : 처리 httpclient는 관련 httpclientHandler를 닫고 TCP/IP 연결을 강제합니다. 이를 위해서는 각 요청을 다시 설정해야하므로 특히 인터넷 또는 HTTPS 연결에서 잠재적 성능 손실이 발생합니다.
단일 httpclient를 재사용하십시오
여러 통화 및 동일한 httpclient 인스턴스를 재사용하려면 이러한 비용을 최소화하고 다른 혜택을 제공 할 수 있습니다.
향상된 기능 활용 : httpclient의 기능 (예 : httpmessageHandler)은 여러 통화를 위해 설계되었으며, 이는 단면적주의를 효율적으로 제공 할 수 있습니다.
Connection Pool : httpclient를 통해 TCP/IP 연결을 재사용하여 TCP/IP 연결을 재사용하여 성능을 향상시키기 위해 각 요청에 대한 연결을 다시 설정하지 않도록합니다.
상태 처리 프로그램 : httpMessageHandlers는 요청간에 응용 프로그램 -레벨 상태를 유지할 수 있으며, 이는 httpclient 인스턴스가 인스턴스화 될 때마다 달성하기가 어렵습니다.
제안 -
비용 분석을 기반으로, 일반적으로 각 액세스 독립 API에 대한 응용 프로그램 수명주기를 유지하는 것이 좋습니다. 이 방법은 자원 효율성, 성능 및 기능 간의 최상의 균형을 제공합니다.
위 내용은 각 웹 API 통화에 대한 새로운 httpclient를 만드는 것이 정말 효율적입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!