PHP cURL 핸들과 프록시 연결 재사용
libcurl의 연결 캐시를 유지하는 것과 프록시를 통한 TCP 연결이 계속 살아 있다는 보장을 구별하세요.
cURL 핸들을 유지하면 이후 전송이 호환되는 캐시된 연결을 재사용할 수 있습니다. 그러나 프록시가 TCP 연결을 무한정 열어 두도록 강제할 수는 없습니다.
상대 측은 유휴 연결을 닫을 수 있고, 네트워크 경로가 사라질 수 있으며, 이후 전송에 다른 경로나 터널이 필요할 수 있습니다. 재사용은 이러한 조건에 좌우되는 클라이언트 측 최적화이며 가용성 보장이 아닙니다.
하나의 프록시 정책으로 반복 작업을 할 때는 해당 핸들이나 multi-handle 연결 캐시를 살려 두고, 작업이 요구하지 않는 한 의도적으로 새 연결을 요청하거나 재사용을 금지하는 옵션을 피하세요. 두 번째 요청이 더 짧다는 것만으로 재사용이 입증된다고 가정하기 전에 실제 전송 동작을 확인하세요.
연결이 "curl_close까지" 열려 있다고 말하는 오래된 PHP 예제는 주의하세요. PHP 문서에 따르면 curl_close()는 PHP 8.0부터 아무 효과가 없으며 PHP 8.5부터 폐기되었습니다. 리소스 소유권과 객체 수명은 배포하는 PHP 버전에서 이해해야 합니다.
프록시를 따뜻하게 유지하려고 반복 요청을 보내는 타이머는 트래픽을 늘릴 뿐이며 원격 엔드포인트가 닫히는 것을 막지 못합니다. 하나의 프록시 연결이 항상 살아남는다는 약속보다 일반적인 연결 관리, 시간 제한이 있는 요청, 명확한 재시도 규칙을 선호하세요.