최신 웹 애플리케이션에서는 빈번한 HTTP 요청 및 서버와의 응답 상호 작용이 매우 일반적인 요구 사항입니다. 연결을 설정하고 요청을 보내고 연결을 닫을 때마다 많은 자원과 시간이 소비됩니다. 특히 동시 요청에 직면 할 때 서버에 많은 압력을 가할 수 있습니다. 성능을 최적화하고 서버로드를 줄이기 위해 PHP의 컬 기능이이를 달성하는 데 도움이 될 수있는 연결을 유지하는 유지 관리라는 메소드를 사용할 수 있습니다.
이 기사에서는 Curl_upkeep () 함수를 통해 HTTP 연결을 활성화시키는 방법에 중점을 두어 연결의 자주 재건축으로 인한 성능 문제가 줄어 듭니다.
HTTP 요청이 CURL 을 통해 서버에 시작할 때마다 연결을 설정하고 데이터 전송, 데이터 수신 및 연결 종료 프로세스를 거치게됩니다. 각 요청에 대해 시스템 리소스를 설정하고 연결하면 시스템 리소스가 소비됩니다. 특히 동시성이 높은 경우 자주 설정 및 연결 폐쇄는 서버 과부하로 이어질 수 있습니다.
Keep-alive 기능을 사용하면 요청할 때마다 연결을 다시 설정하지 않아도됩니다. HTTP Keep-Alive를 사용하면 요청을 전송 한 후 연결을 열어두고 여러 요청이 연결을 공유하여 설정 및 철거 된 TCP 연결 수를 줄여 서버 압력을 줄이고 성능을 향상시킵니다.
PHP에서 Curl은 HTTP 요청을 보내고 서버 응답을 처리하는 매우 강력한 도구입니다. 연결을 계속 활성화하기 위해 CURL 구성에서 일부 옵션을 설정할 수 있습니다.
우리가 이미 기본적인 컬 요청이 있다고 가정하고 이제 연결을 계속 활성화 할 수 있도록 수정하려고합니다.
<?php
function curl_upkeep($url) {
// 초기화 cURL 세션
$ch = curl_init();
// 대상 설정 URL
curl_setopt($ch, CURLOPT_URL, $url);
// 요청 메소드를 설정하십시오 GET
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
// 출력 대신 반환 값을 활성화합니다
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 헤더 정보를 설정하십시오,연결 유지를 지원합니다
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Connection: keep-alive"
]);
// 재시도 시간 및 재시도 간격의 최대 수를 설정하십시오.
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// 요청을 실행하고 응답을받습니다
$response = curl_exec($ch);
// 오류가 발생했는지 확인하십시오
if(curl_errno($ch)) {
echo "cURL error: " . curl_error($ch);
}
// 폐쇄 cURL 세션
curl_close($ch);
// 반환 응답
return $response;
}
// 사용 m66.net 예로 URL
$response = curl_upkeep("https://m66.net/api/getData");
echo $response;
?>
연결 상태 :
curl_setopt () 에서 curlopt_httpheader 옵션을 설정하여 연결을 유지합니다 . 이 헤더는 서버에 클라이언트가 응답을 전송 한 후 현재 연결을 활성화하려고하고 후속 요청을 수락 할 수 있다고 말합니다.
최대 리디렉션 :
curlopt_maxredirs 옵션은 허용되는 최대 리디렉션 수를 제어합니다. 경우에 따라 서버는 리디렉션 응답 (예 : 301 또는 302)을 반환 할 수 있으며이 옵션을 통해 리디렉션 수를 제한하여 무한 루프를 방지 할 수 있습니다.
리디렉션 다음 :
Curlopt_FollowLocation은 CURL이 3XX 클래스 리디렉션 응답을 따라갈 수 있도록 TRUE 로 설정되었습니다. 이는 요청이 대상 서버의 최종 위치에 도달 할 수 있도록하는 데 매우 중요합니다.
오류 처리 :
우리는 curl_errno () 및 curl_error ()를 사용하여 오류를 제 시간에 진단 할 수 있도록 가능한 오류를 캡처하고 출력합니다.
응답 반환 :
Curl_Exec ()는 서버의 응답 데이터를 반환하여 후속 처리를 위해 저장하고 반환합니다.
CURL 에서 Keep Connection 옵션을 사용하면 빈번한 연결 생성 및 폐쇄에서 서버 압력을 크게 줄일 수 있습니다. 특히 많은 수의 요청을 처리 할 때 연결을 활성으로 유지하면 응용 프로그램 성능을 효과적으로 향상시키고 대기 시간을 줄이며 사용자 경험을 최적화 할 수 있습니다. 연결을 설정하여 요청의 신뢰성과 유연성을 향상시킵니다. 연결을 유지하여 연결을 지속하고 다른 컬 옵션을 설정합니다.
이 기사를 통해 Curl_upkeep ()을 사용하여 연결을 계속 활성화하고 연결 재건축으로 인해 서버의 압력을 줄이는 방법을 더 잘 이해할 수 있기를 바랍니다.