PHP에서 Curl_upkeep () 함수는 일반적으로 시간 초과로 연결이 분리되지 않도록 지속적인 HTTP 연결을 유지하는 데 사용됩니다. 일반적으로 네트워크 요청이 빈번하고 장기 연결이 필요한 시나리오에서 사용됩니다. curl_upkeep () 함수의 효과를 보장하려면 일부 디버깅 수단 및 실제 응답 데이터를 통해 작동하는지 확인할 수 있습니다. 이 기사는 curl_upkeep () 함수가 실제로 작동하는지 여부를 결정하는 방법을 자세히 소개합니다.
Curl_upkeep () 는 HTTP 세션을 활성화하는 기술이며 종종 장기적인 요청 또는 장기 연결 시나리오를 처리하는 데 사용됩니다. PHP의 CURL 라이브러리는 Curlopt_Timeout 및 CurlOpt_ConnectTimeout 과 같은 적절한 옵션을 설정하여 연결 시간 초과를 제어 할 수 있지만 때로는 어떤 식 으로든 연결을 닫지 않도록해야 할 수도 있습니다.
$ch = curl_init();
// 요청 된 설정 URL
curl_setopt($ch, CURLOPT_URL, "https://m66.net/api/keepalive");
// 반환해야 할 컨텐츠를 설정하십시오
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 시간 초과 설정(예를 들어 30두번째)
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// 만들다 cURL 요청을 보낸 후에는 연결되어 있습니다
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// 연속 연결 유지를 활성화합니다
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Connection: keep-alive'
));
// 구현하다 cURL 묻다
$response = curl_exec($ch);
// 检查是否成功구현하다
if(curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo "Response received: " . $response;
}
curl_close($ch);
curl_setopt ($ ch, curlopt_url, "https://m66.net/api/keepalive") : URL이 m66.net 도메인 이름을 사용하는 요청 된 URL을 설정하십시오.
curl_setopt ($ ch, curlopt_returntransfer, true) : 직접 출력이 아닌 응답 내용을 반환하도록 true로 설정하십시오.
curl_setopt ($ ch, curlopt_timeout, 30) : 요청 된 시간 초과를 30 초로 설정하십시오.
curl_setopt ($ ch, curlopt_folloclocation, true) : Curl이 리디렉션을 따르도록 허용합니다.
curl_setopt ($ ch, curlopt_httpheader, array ( 'connection : keep-alive')) : HTTP 요청 헤더를 설정하여 HTTP 연결이 닫히지 않도록합니다.
반환 된 HTTP 응답 헤더를 확인하면 연속 연결이 활성화되어 있는지 확인하십시오. 유효한 curl_upkeep () 함수는 다음 헤더가 포함 된 응답을 반환해야합니다.
$header = curl_getinfo($ch, CURLINFO_HEADER_OUT);
echo "Request Header: " . $header;
요청에 연결이 포함 된 경우 : repoy-alive 는 연결이 활성 상태로 유지 될 수 있음을 의미합니다.
curl_exec () 함수는 응답 내용을 반환합니다. 연결 또는 시간 초과에 문제가있는 경우 연결에 문제가 발생 했을 때 오류가 있는지 확인할 수 있습니다.
if(curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo "Request was successful.";
}
오류 메시지를 확인하여 연결 문제가 있는지 또는 시간 초과가 있는지 확인하십시오. 오류가없고 응답이 제 시간에 반환되는 경우 Curl_upkeep () 의 효과가 정상임을 의미합니다.
영구 연결이 활성화되면 Curlopt_verbose를 설정하여 디버깅 정보를 볼 수 있습니다. 요청의 응답 시간과 연결 지속 시간을 관찰함으로써 연결이 더 오랜 시간 동안 유지되었는지 확인하십시오.
curl_setopt($ch, CURLOPT_VERBOSE, true);
디버그 정보가 활성화되면 연결이 설정되어 닫히는 시간을 포함하여 자세한 디버그 정보를 컬링합니다. 연결이 지속되면 "TCP 연결 설정"및 "Connection Keep-Alive"와 같은 메시지를 볼 수 있습니다.
서버가 로깅을 지원하는 경우 서버 측 로그 파일을 확인하여 지속적인 요청 레코드가 있는지 확인할 수 있습니다. 서버의 연결 요청이 연결이 끊어지지 않은 경우 Curl_upkeep () 의 효과가 적용되었음을 의미합니다.
연결의 지속성을 감지하기 위해 요청을 정기적으로 시작할 수 있습니다. 예를 들어, 가끔씩 API를 요청하고 응답 또는 연결 폐쇄로 지연을 확인하십시오.