PHP에서 Curl은 서버간에 요청을 보내고 HTTP 요청 및 응답을 효율적으로 처리 할 수있는 매우 강력한 라이브러리입니다. 긴 연결을 유지 해야하는 경우 Curl_SetOpt () 및 기타 구성 옵션은 연결 안정성과 성능을 크게 향상시킬 수 있습니다.
이 기사에서는 Curl_SetOpt ()를 통해 컬을 구성하고 Curl_Upkeep ()를 올바르게 사용하여 긴 연결을 유지할 때 안정성을 향상시키는 방법에 대해 설명합니다.
Curl_SetOpt () 는 PHP CURL 기능 라이브러리에서 중요한 기능이며 그 기능은 컬 세션에 대한 다양한 옵션을 설정하는 것입니다. 이러한 옵션을 설정하면 요청 방법, 시간 초과 시간, 요청 헤더 등과 같은 HTTP 요청의 다양한 측면을 제어 할 수 있습니다.
CORM CURL_SETOPT () 구성 옵션은 다음과 같습니다.
curlopt_url : 요청 된 URL을 설정합니다.
curlopt_returntransfer : 응답 결과를 직접 출력보다는 문자열로 반환합니다.
curlopt_timeout : 요청 시간 초과 시간을 설정합니다.
Curlopt_HTTPHEADER : HTTP 요청 헤더를 설정합니다.
Curl_upkeep () 는 긴 연결을 처리 할 때 CURL의 도우미 기능이며 일반적으로 지속적인 연결의 안정성을 유지하는 데 사용됩니다. 이 기능은 일정 기간 동안 사용되지 않을 때 연결이 닫히지 않도록 보장하고 요청이 자주 전송되지만 연결을 자주 설정하고 싶지 않은 시나리오에 적합합니다.
먼저 CURL 세션을 초기화하고 curl_init () 를 통해 세션 핸들을 만들어야합니다.
$ch = curl_init();
다음으로 curl_setopt ()를 사용하여 URL, 요청 메소드, 연결 시간 초과 등과 같은 필요한 옵션을 설정할 수 있습니다.
curl_setopt($ch, CURLOPT_URL, "https://m66.net/someapi");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer YOUR_ACCESS_TOKEN"
));
긴 연결의 안정성을 향상시키기 위해 Curl_upkeep ()를 함께 사용할 수 있습니다. 이 기능은 연결 시간 초과 또는 중단을 피하고 세션 동안 연결의 안정성을 보장합니다.
curl_upkeep($ch);
이렇게하면 CURL이 안정적인 연결을 유지하는 데 도움이되어 여러 요청이 자주 분리되고 다시 연결되지 않도록합니다.
Curl_Exec () 를 통해 요청을 실행하고 반환 된 응답 결과를 얻으십시오.
$response = curl_exec($ch);
if(curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
모든 작업이 완료되면 CURL 세션을 닫아야합니다.
curl_close($ch);
컬의 안정성과 성능을 최대화하려면 다음 팁을 참조하십시오.
긴 연결의 경우 시간 초과 시간을 적절하게 늘리면 연결이 조기에 닫히는 것을 효과적으로 방지 할 수 있습니다.
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 시간 초과를 늘리십시오
HTTP Keep-Alive 헤더는 요청 할 때마다 연결을 다시 설정하지 않고 서버에 지속적인 연결을 유지하도록 지시합니다.
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Connection: keep-alive"
));
리디렉션이 발생하면 Curlopt_maxredirs 옵션을 사용하여 최대 리디렉션 수를 제어하여 무한 리디렉션의 죽은 루프를 피할 수 있습니다.
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
연결을 유지하기 위해 정기적으로 서버에 요청을 보내십시오. 심장 박동 메커니즘은 시간이 정해진 작업 또는 짧은 요청 간격을 사용하여 구현할 수 있습니다.
// 예:모든5연결을 활성화하기 위해 몇 분 안에 요청을 보내십시오.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://m66.net/heartbeat");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);