PHP에서 Curl은 다른 서버와 함께 HTTP 요청을 할 수있는 매우 강력한 라이브러리입니다. CURL은 단일 요청을 처리 할뿐만 아니라 여러 요청 간의 리소스 공유도 지원합니다. curl_share_init () 및 curl_setopt () 함수를 결합함으로써 파일 핸들, DNS 캐시, SSL 세션 등과 같은 여러 컬 세션간에 일부 리소스를 공유하여 동시 요청의 효율성을 크게 향상시킬 수 있습니다.
이 기사에서는 Curl_share_init () 및 Curl_SetOpt () 함수를 사용하여 동시 요청을 효과적으로 관리하기 위해 여러 CURL 세션의 리소스를 공유하는 방법을 소개합니다.
CURL 세션 공유는 캐시 된 DNS 정보 또는 SSL 세션 데이터와 같은 특정 리소스를 공유하는 여러 CURL 요청의 능력을 나타냅니다. 여러 유사한 요청이 있으면 세션 공유를 활성화하면 각 요청에 대해 DNS를 재건 또는 재 분리하여 성능을 향상시킬 수 있습니다.
curl_share_init () 함수는 공유 리소스 개체를 초기화하는 데 사용됩니다. 객체는 공유 핸들에 저장되어 여러 컬 세션이 공유 할 수 있습니다. curl_setopt () 함수는 공유 리소스와 관련된 설정을 포함하여 CURL 세션에서 다양한 옵션을 구성하는 데 사용됩니다.
curl_share_init ()를 사용하여 공유 리소스를 초기화하십시오. 이것은 후속 컬 세션이 자원을 공유 할 수있는 공유 객체를 만듭니다.
$ch1 = curl_init();
$ch2 = curl_init();
// 공유 리소스 초기화
$share = curl_share_init();
// 공유 리소스를 설정합니다
curl_share_setopt($share, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS); // 공유 DNS 은닉처
curl_share_setopt($share, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION); // 공유 SSL 세션
Curl_SetOpt ()를 사용하여 컬 세션 옵션을 설정하십시오. 그런 다음 공유 리소스 객체는 curl_setopt () 를 통해 각 컬 세션에 바인딩됩니다.
// 첫 번째를 설정하십시오 cURL 세션的选项
curl_setopt($ch1, CURLOPT_URL, 'https://m66.net/path1'); // 대체하십시오 m66.net 도메인 이름
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_SHARE, $share); // 绑定공유资源
// 두 번째를 설정하십시오 cURL 세션的选项
curl_setopt($ch2, CURLOPT_URL, 'https://m66.net/path2'); // 대체하십시오 m66.net 도메인 이름
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_SHARE, $share); // 绑定공유资源
// 다중 실행 cURL 세션
$response1 = curl_exec($ch1);
$response2 = curl_exec($ch2);
// 처리 응답
echo $response1;
echo $response2;
요청이 완료된 후 공유 리소스 및 컬 세션을 해제해야합니다.
// 폐쇄 cURL 세션
curl_close($ch1);
curl_close($ch2);
// 释放공유资源
curl_share_close($share);
DNS 및 SSL 세션을 공유하는 것 외에도 필요에 따라 다른 리소스를 공유 할 수 있습니다. 공유 리소스의 일반적인 유형은 다음과 같습니다.
curl_lock_data_cookie : 공유 쿠키 데이터.
curl_lock_data_ssl_session : SSL 세션을 공유하십시오.
curl_lock_data_dns : 공유 DNS 캐시.
curl_share_setopt ()를 사용하여 해당 옵션을 설정하여 이러한 공유 리소스를 활성화하십시오.
curl_share_init () 및 curl_setopt ()를 사용하면 여러 컬 세션간에 리소스를 쉽게 공유하여 요청의 효율성을 높일 수 있습니다. 특히 동시 요청이 많을 때 자원 공유를 켜면 중복 리소스로드를 피하고 응답 속도를 향상시킬 수 있습니다. curl_share_close ()를 호출하여 사용 후 각 공유 리소스 개체를 해제해야합니다.
이 기사가 Curl의 공유 메커니즘을 사용하여 여러 세션을 관리하는 방법을 이해하는 데 도움이되기를 바랍니다.