Back End/etc
[PHP] CURL 은 리다이렉트 응답이 오면 재요청하지 않는다. (feat. CURL 관련함수 정리)
DevPing9_
2022. 6. 5. 22:00
PHP 는 개발자마다 코드 구현 패턴이 너무 달라
너무~~~~ 별로다 😭😭😭
CURL 은 요청에 대한 응답이 리다이렉트로 돌아와도 재요청하지 않는다.
CURL 요청에 대한 response가 비어있는 상태로 들어오는 현상을 발견해서
이리저리 로그를 찍어봤더니
CURL 요청은 서버에서 리다이렉트를 던져주면
재요청을 하지 않더라...그래 뭐... 그럴 수 있지...
그게 디폴트일 수 있지..
리다이렉트 응답에 대해 Location 헤더를 따르도록 내가 일일이 코딩해야되?
다행이도 그건 아니었다.
CURLOPT_FOLLOWLOCATION 라는 옵션을 setopt() 에서 설정해주면 된다.
# CURL 관련 함수
- curl_init : 세션 초기화, 핸들값 리턴
- curl_setopt : 옵션 세팅 (옵션값에 대해서는 하단에 추가 설명)
- curl_exec : curl 실행
- curl_errno : 에러 발생 시 에러번호를 가져온다.
- curl_error : 에러 발생 시 에러메시지를 가져온다.
- curl_getinfo : 상태 정보를 리턴한다.
- curl_close : curl 세션을 닫는다.
# setopt 옵션 인자
- CURLOPT_FOLLOWLOCATION : TRUE로 설정 시 HTTP 헤더로 보내는 LOCATION헤더의 내용을 따른다.
- CURLOPT_HEADER : TRUE로 설정 시 헤더의 내용을 출력
- CURLOPT_NOBODY : TRUE로 설정 시 본문의 내용을 받지 않는다.
- CURLOPT_ POST : 전송 메서드 설정 (1-POST / 2-GET)
- CURLOPT_RETURNTRANSFER : TRUE로 설정 시 curl_exec()의 반환 값을 문자열로 반환
- CURLOPT_PORT : 연결 포트 설정
- CURLOPT_TIMEOUT : 반환 값에 대한 타임아웃 설정
- CURLOPT_POSTFIELDS : 'POST'로 보내는 데이터 정의
- CURLOPT_REFERER : HTTP 요청에 사용되는 REFERER헤더의 내용
- CURLOPT_URL : 접속할 URL 주소 설정
- CURLOPT_USERAGENT : HTTP 요청에 사용되는 User-Agent헤더의 내용
# Reference
728x90