소프트웨어 애플리케이션 cURL은 "Client for URLs"의 약어로, 개발자가 데이터 전송 관리를 위한 포괄적인 기능 모음을 제공합니다. 두 가지 뚜렷한 모드로 작동하며, 기본 상호작용을 위한 사용자 친화적인 명령줄 인터페이스와 프로그래밍 프로젝트에 원활하게 통합될 수 있는 강력한 라이브러리가 있습니다.
Apidog가 귀하와 같은 개발자에게 제공하는 내용을 더 알고 싶다면 아래 버튼을 클릭하세요!
curl_init()의 공식 정의
공식 PHP 웹사이트에 따르면, curl_init 함수는 cURL 세션을 초기화하고 curl_setopt(), curl_exec(), curl_close() 함수와 함께 사용할 cURL 핸들을 반환합니다.
관련 매개변수
url
URL을 제공하면 CURLOPT_URL
옵션이 그 값으로 설정됩니다. curl_setopt() 함수를 사용하여 수동으로 이 옵션을 설정할 수도 있습니다.
다만, open_basedir
가 설정된 경우 cURL 자체에 의해 file
프로토콜이 비활성화됩니다.
반환 값
curl_init() 함수는 성공 시 cURL 핸들을 반환하고, 오류가 발생하면 false
를 반환합니다.
POST 요청이란?
웹 통신의 맥락에서, 하이퍼텍스트 전송 프로토콜(HTTP)은 데이터 교환의 기초로 사용됩니다. HTTP에서 사용되는 중요한 방법 중 하나는 POST 요청이며, 이는 웹 서버에 데이터를 전송하기 위해 특별히 설계되었습니다. 이 문서는 POST 요청의 복잡성을 탐구하며, 그 기능을 설명하고 이를 GET 요청과 비교합니다.

POST 요청의 주요 기능
데이터 전송
POST 요청은 웹 서버에 데이터를 전송하기 위해 특별히 설계되었습니다. 이 데이터는 새로운 리소스를 생성하거나 기존 정보를 업데이트하거나 데이터를 삭제하는 데 사용될 수 있습니다.
데이터 배치
POST 요청은 요청 본문 에서 데이터를 전송하며 URL 자체에 포함되지 않습니다. 이 분리는 특히 비밀번호나 신용 카드 정보와 같은 민감한 정보의 보안을 강화하며, 이는 URL에 노출되지 않습니다.
상태 변경
POST 요청은 일반적으로 서버 측에서 수정을 초래합니다. 이는 새로운 사용자 계정을 생성하거나 파일을 업로드하거나 쇼핑 카트에 새로운 제품을 추가하거나 댓글을 삭제하는 것과 관련이 있을 수 있습니다.
캐시할 수 없음
POST 요청이 데이터를 수정하기 때문에, 웹 브라우저는 일반적으로 이를 캐시하지 않습니다. 이는 최신 정보가 항상 서버로 전송되도록 보장하며, 구식 데이터가 사용되는 것을 방지합니다.
curl_init() POST 요청의 코드 예시
curl_init() 함수를 사용하여 POST 요청을 만들고자 할 때 참고할 수 있는 PHP 코딩 예시입니다.
예시 1 - 간단한 텍스트 데이터 전송
이 예시는 기본 사용자 이름과 비밀번호를 로그인 스크립트에 전송합니다.
<?php
$url = "https://www.example.com/login.php";
$username = "your_username";
$password = "your_password";
$data = array(
"username" => $username,
"password" => $password
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // 요청 방법을 POST로 설정
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // POST 데이터 설정
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 응답 반환
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "로그인 성공!" ;
} else {
echo "오류: " . curl_error($ch);
}
?>
코드 설명:
- 대상 URL, 사용자 이름 및 비밀번호를 정의합니다.
- 사용자 이름과 비밀번호를 포함하는 배열
$data
를 생성합니다. - 함수
curl_init($url)
로 curl 핸들을 초기화합니다. curl_setopt($ch, CURLOPT_POST, 1)
를 사용하여 요청 방법을 POST로 설정합니다.curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data))
를 사용하여 POST 데이터를 설정합니다.http_build_query
는 데이터 배열을 URL 인코딩된 문자열로 변환합니다.- 응답을 직접 출력하는 대신 캡처하기 위해
CURLOPT_RETURNTRANSFER
를 1로 설정합니다. curl_exec($ch)
로 요청을 실행하고, 응답을$response
에 저장합니다.curl_close($ch)
로 curl 핸들을 닫습니다.- 마지막으로, 응답이 존재하는지 확인하고 성공 메시지 또는 오류를 표시합니다.
예시 2 - JSON 데이터 전송
이 예시는 사용자 정보를 포함한 JSON 객체를 등록 스크립트에 전송합니다.
<?php
$url = "https://www.example.com/register.php";
$user_data = array(
"name" => "John Doe",
"email" => "john.doe@example.com",
"password" => "your_password"
);
$data_json = json_encode($user_data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // 요청 방법을 POST로 설정
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json); // JSON으로 POST 데이터 설정
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 응답 반환
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', // 콘텐츠 유형을 JSON으로 설정
));
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "등록 성공!";
} else {
echo "오류: " . curl_error($ch);
}
?>
코드 설명:
- 대상 URL과 사용자 데이터 배열을 정의합니다.
json_encode
를 사용하여 사용자 데이터를 JSON 문자열로 변환합니다.- curl 핸들을 초기화하고 요청 방법을 POST로 설정합니다.
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json)
를 사용하여 POST 데이터를 설정합니다.- 응답을 캡처하기 위해
CURLOPT_RETURNTRANSFER
를 1로 설정합니다. - 서버에 데이터 형식이 JSON임을 알리기 위해 사용자 지정 헤더
Content-Type: application/json
를 설정합니다. - 이전 예제처럼 요청을 실행하고 curl 핸들을 닫습니다.
- 마지막으로, 응답을 확인하고 성공 메시지 또는 오류를 표시합니다.
예시 3 - 사용자 지정 헤더 설정 및 리다이렉트 따라가기
이 예시는 사용자 지정 헤더와 함께 POST 요청을 보내고 리다이렉트를 따릅니다.
<?php
$url = "https://www.example.com/login.php";
$data = array(
"username" => "your_username",
"password" => "your_password"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1); // 요청 방법을 POST로 설정
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 응답 반환
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer YOUR_API_KEY', // 사용자 지정 헤더 설정
));
// 최대 3회까지 리다이렉트 따라가기
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
$response = curl_exec($ch);
curl_close($ch);
if($response) {
echo "로그인 성공!";
} else {
echo "오류: " . curl_error($ch);
}
?>
코드 설명:
- 로그인 URL과 사용자 데이터를 정의합니다.
- curl 핸들을 설정하고 POST 요청을 이전과 같이 설정합니다.
- 사용자 인증 토큰으로 사용자 지정 헤더를 만들기 위해
CURLOPT_HTTPHEADER
를 사용합니다. CURLOPT_FOLLOWLOCATION
를 사용하여 리다이렉트 추적을 활성화하고CURLOPT_MAXREDIRS
로 최대 3회로 제한합니다.
기억할 점
위의 코드 샘플은 간단화된 것이므로 IDE에 복사하여 붙여넣지 않도록 하십시오. 애플리케이션의 필요에 맞게 더 많은 수정이 필요합니다.
공식 문서는 다음 링크에서 확인할 수 있습니다: https://www.php.net/manual/en/book.curl.php

Apidog - cURL 명령을 쉽게 가져오기
Apidog는 API 라이프사이클 전반에 걸쳐 필요한 모든 도구를 제공하는 정교한 API 개발 플랫폼입니다. Apidog를 사용하면 단일 애플리케이션 내에서 API를 구축, 디버깅, 목업 및 문서화할 수 있습니다.

cURL 명령을 Apidog로 가져오는 방법을 살펴보겠습니다!
cURL 명령을 Apidog로 손쉽게 가져오기

Apidog는 cURL 명령을 가져오려는 사용자를 지원합니다. 빈 프로젝트에서 Apidog 창의 왼쪽 상단 부분에 있는 보라색 +
버튼을 클릭하고 Import cURL
을 선택하십시오.

화면에 표시된 상자에 cURL 명령을 복사하여 붙여넣습니다.

성공적으로 수행되면 이제 API 요청 형태로 cURL 명령을 볼 수 있어야 합니다.
Apidog로 PHP 코드 생성하기
PHP 프로그래밍 언어 코딩 경험이 없다고 걱정하지 마세요! Apidog에는 다양한 언어를 위한 코드 생성 기능이 있어 개발자에게 편리함을 제공합니다!

먼저, 모든 API 또는 요청에서 </> 코드 생성
버튼을 찾아 드롭다운 목록에서 클라이언트 코드 생성
을 선택합니다.

그 다음 PHP를 선택하고 cURL 섹션을 찾습니다. 이제 cURL에 대해 생성된 코드를 볼 수 있어야 합니다. 그저 IDE(통합 개발 환경)에 복사하여 붙여넣고 애플리케이션을 계속 개발하면 됩니다.
결론
curl_init()를 사용하여 POST 요청을 마스터하면 개발자에게 강력한 도구가 제공됩니다. 이를 통해 웹 서버에 데이터를 전송하고 사용자 계정을 생성하거나 파일을 업로드하거나 양식을 제출하는 등의 작업을 할 수 있습니다. POST 요청의 핵심 개념과 curl_init()의 기능을 이해함으로써, 다양한 웹 상호작용을 위한 맞춤형 솔루션을 작성할 수 있습니다.
기억하세요, curl_init()
는 유연한 접근 방식을 제공하여 데이터를 다양한 형식으로 전송하고 사용자 지정 헤더를 설정하며 파일 업로드 및 리다이렉트와 같은 시나리오를 처리할 수 있습니다. 이 새로운 지식을 통해 POST 요청을 신 confidently 활용하여 웹 애플리케이션의 기능을 강화할 수 있습니다.