CURL_CLOSE 기능은 현재 CURL 세션을 닫고 세션과 관련된 모든 리소스를 자유롭게하는 데 사용됩니다. 세션을 마감 한 후에는 더 이상 세션 핸들을 통해 요청을 보낼 수 없습니다. CURL_CLOSE 는 일반적으로 CURL 작업을 완료 한 후에 호출되어 리소스를 청소하고 메모리 누출을 피할 수 있습니다.
사용 예 :
$ch = curl_init();
// 설정 cURL 옵션
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 구현하다 cURL 묻다
$response = curl_exec($ch);
// 폐쇄 cURL 세션
curl_close($ch);
위의 예에서는 먼저 Curl_Init을 통해 컬 세션을 초기화합니다. 요청 된 URL 및 리턴 전송 옵션이 설정되고 요청은 Curl_Exec을 통해 실행됩니다. 모든 작업이 완료되면 Curl_Close를 사용하여 세션을 닫고 리소스를 확보하십시오.
Curl_Close를 호출 한 후 컬 핸들이 유효하지 않아 더 이상 사용할 수 없습니다. 세션을 닫은 후 핸들을 다시 사용하려고하면 오류가 발생합니다.
Curl_Close 와 달리 Curl_Reset 함수는 CURL 세션을 닫지 않지만 초기 상태로 재설정됩니다. Curl_Reset을 호출 한 후 CURL 세션의 모든 옵션 (예 : URL, 요청 메소드, 데이터 등)이 기본값으로 복원됩니다. 이 기능을 사용하면 새 컬 세션을 다시 시작하지 않고도 동일한 세션 핸들을 사용하여 새 요청을 다시 시작할 수 있습니다.
사용 예 :
$ch = curl_init();
// 설정 cURL 옵션
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 구현하다第一个묻다
$response1 = curl_exec($ch);
// 다시 놓기 cURL 세션
curl_reset($ch);
// 설정新的 cURL 옵션
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example2");
// 구현하다第二个묻다
$response2 = curl_exec($ch);
// 폐쇄 cURL 세션
curl_close($ch);
이 예에서는 Curl_Init을 통해 CURL 세션을 초기화하고 첫 번째 요청을 실행합니다. 첫 번째 요청을 실행 한 후 Curl_Reset을 통해 이전 설정을 지우고 새 URL 및 기타 옵션을 재설정하여 두 번째 요청을 수행합니다. 이런 식으로 Curl_Reset을 사용하면 CURL 세션을 다시 구체화하지 않고 동일한 세션을 재사용 할 수 있습니다.
curl_close 와 curl_reset은 컬 세션을 관리하는 데 사용되는 기능이지만 다르게 행동합니다.
세션 닫기 vs 재설정 세션 :
CURL_CLOSE 는 CURL 세션을 완전히 닫고 모든 관련 리소스를 출시하는 데 사용되며 그 후에도 세션을 계속 사용할 수는 없습니다.
Curl_Reset은 세션을 재설정하는 데 사용되며 리소스를 릴리스하지 않지만 설정 옵션 만 지우므로 동일한 세션 핸들이 계속 사용될 수 있습니다.
세션 수명주기 :
CURL_CLOSE 는 CURL 세션 라이프 사이클의 끝이며 모든 작업이 완료된 후에 자원 청소에 적합합니다.
CURL_RESET은 여러 컬 세션의 반복 초기화를 피하기 위해 동일한 세션에서 여러 요청이 수행 될 때 재설정 세션 옵션에 적합합니다.
성능 고려 사항 :
여러 요청이 필요하고 각 요청의 구성이 다른 경우 Curl_Reset을 사용하면 Curl_Init 및 Curl_Close 에 대한 빈번한 호출을 피할 수있어 성능이 향상됩니다.
요청을 한 번만 수행하고 세션을 재사용 할 필요가없는 경우 Curl_Close를 사용하여 리소스를 확보해야합니다.
CURL_CLOSE 사용 : 요청을 완료하고 더 이상 세션을 계속 사용할 필요가 없으면 Curl_Close가 호출하여 세션을 닫고 리소스를 확정해야합니다. 일반적으로 스크립트 종료 직후 또는 요청 후 즉시 호출됩니다.
CURL_RESET 사용 : 다른 요청에 대해 동일한 세션 핸들을 여러 번 사용해야 할 때 Curl_Reset을 사용하여 세션 옵션을 재설정하여 Curl_Init 및 Curl_Close를 호출하여 코드 효율성을 향상시킬 수 있습니다.