-
[PHP] CURL 은 리다이렉트 응답이 오면 재요청하지 않는다. (feat. CURL 관련함수 정리)Back End/etc 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'Back End > etc' 카테고리의 다른 글
Redis 전체 키 조회, 삭제 등 명령어 모음 (0) 2023.04.28 클라이언트 IP 알아내는 법 (0) 2023.04.25 [PHP] Mac 에서 PHP Composer 설치 및 커맨드 전역설정하기 (0) 2022.05.21 [Apache2] Homebrew Apache2(httpd) 설치 & 가상호스트 설정 & 프로젝트폴더 Apache 서버로 구동시키기 (0) 2022.05.21 [JSP] Apache Tiles (0) 2022.04.13