Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP CURL 컨텍스트 옵션 완벽 정리: 주요 설정값과 활용 방법

PHP CURL 컨텍스트 옵션이란?

PHP에서 CURL 컨텍스트 옵션은 CURL 확장 모듈이 --with-curlwrappers 설정 옵션과 함께 컴파일되어 있을 때 사용할 수 있는 스트림 컨텍스트 옵션입니다. 이 옵션들을 활용하면 file_get_contents(), fopen() 같은 파일 시스템 함수를 통해서도 HTTP 요청 방식, 헤더, 프록시, SSL 검증 등 세부적인 네트워크 동작을 제어할 수 있습니다.

아래 표는 CURL 래퍼(wrapper)에서 지원하는 주요 컨텍스트 옵션을 정리한 것입니다.

CURL 래퍼 컨텍스트 옵션 목록

옵션설명
method원격 서버가 지원하는 HTTP 메서드를 지정합니다. 기본값은 GET입니다.
header요청 시 함께 전송할 추가 헤더를 지정합니다.
user_agentUser-Agent: 헤더로 전송될 값을 설정합니다.
content헤더 이후에 전송할 추가 데이터를 지정합니다. 이 옵션은 GET 또는 HEAD 요청에는 적용되지 않습니다.
proxy프록시 서버의 주소를 나타내는 URI를 지정합니다.
max_redirects따라갈 리디렉션(redirect)의 최대 횟수를 설정합니다. 기본값은 20입니다.
curl_verify_ssl_host호스트(host)의 유효성을 검증합니다. 기본값은 FALSE이며, http와 ftp 프로토콜 래퍼 모두에서 사용할 수 있습니다.
curl_verify_ssl_peer사용된 SSL 인증서에 대한 검증을 요구합니다. 기본값은 FALSE이며, http와 ftp 프로토콜 래퍼 모두에서 사용할 수 있습니다.

활용 예제

실제 코드에서는 stream_context_create() 함수로 컨텍스트를 생성한 뒤 파일 관련 함수에 전달하여 사용합니다.

<?php
$options = [
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\n",
'user_agent' => 'MyApp/1.0',
'content' => json_encode(['name' => 'test']),
'max_redirects' => 10,
]
];
$context = stream_context_create($options);
$result = file_get_contents('https://example.com/api', false, $context);
?>

참고 사항

curl_verify_ssl_hostcurl_verify_ssl_peer 옵션은 기본적으로 비활성화(FALSE)되어 있어 SSL 인증서 검증이 생략됩니다. 운영 환경에서는 보안상의 이유로 가능한 한 인증서 검증을 활성화하는 것이 좋습니다. 또한 이러한 CURL 래퍼 기반 옵션은 환경에 따라 지원 여부가 달라질 수 있으므로, 사용 전 서버의 PHP 설정에서 CURL 확장이 --with-curlwrappers 옵션으로 빌드되었는지 확인하는 것이 안전합니다.