본문으로 바로가기

cURL은 command line 기반의 웹 요청 도구이다. 

Unix, Linux, Windows 등의 주요 OS에서 구동 가능하며 HTTP/HTTPS/FTP/LDAP/SCP/TELNET/SMTP/POP3 등 핵심 프로코콜을 지원하기 때문에 유용하게 사용된다. download와 upload가 모두 가능하다.


다양하고 강력한 기능을 가진 옵션들을 제공하지만 나는 보통 특정 서버에서 빠르게 방화벽 예외 상태를 테스트 하거나, REST 서비스 테스트를 위해 사용한다.


아래와 같은 형태로 사용된다. 


curl [options] <url> 


가볍게 "curl www.leafcats.com" 이 블로그의 주소를 날리면, 아래와 같이 HTML정보를 콘솔에 출력해 준다.

 


 

주요 옵션

 

http와 https 옵션에 대해 정리된 글을 퍼왔다.

(출처 : https://www.lesstif.com/pages/viewpage.action?pageId=14745703 )

 

short
long
설명
비고
-k --insecure https 사이트를 SSL certificate 검증없이 연결한다. wget 의 --no-check-certificate 과 비슷한 역할 수행
-l --head HTTP header 만 보여주고 content 는 표시하지 않는다
-D --dump-header <file> <file> 에 HTTP header 를 기록한다.
-L --location

서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.

--max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있다. 기본 값은 50이다

curl -v daum.net 을 실행하면 결과값으로 다음과 같이 HTTP 302 가 리턴된다.

< HTTP/1.1 302 Object Moved
< Location: http://www.daum.net/

-L 옵션을 추가하면 www.daum.net 으로 재접속하여 결과를 받아오게 된다.

-d --data HTTP Post data FORM 을 POST 하는 HTTP나 JSON 으로 데이타를 주고받는 REST 기반의 웹서비스 디버깅시 유용한 옵션이다
-v --verbose  동작하면서 자세한 옵션을 출력한다.
-J --remote-header-name 어떤 웹서비스는 파일 다운로드시 Content-Disposition Header 를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다. -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다. curl 7.20 이상부터 추가된 옵션
-o --output FILE curl 은 remote 에서 받아온 데이타를 기본적으로는 콘솔에 출력한다. -o 옵션 뒤에 FILE 을 적어주면 해당 FILE 로 저장한다. (download 시 유용)
-O --remote-name file 저장시 remote 의 file 이름으로 저장한다. -o 옵션보다 편리하다.
-s --silent 정숙 모드. 진행 내역이나 메시지등을 출력하지 않는다. -o 옵션으로 remote data 도 /dev/null 로 보내면 결과물도 출력되지 않는다 HTTP response code 만 가져오거나 할 경우 유리

 

 

더 많은 옵션에 대한 정보나 사용법에 대해서는 crul 공식 사이트 (https://curl.haxx.se/) 를 참고 하시기 바란다.

 

저작자 표시 비영리 변경 금지
신고

 Other Contents 

댓글을 달아 주세요

티스토리 툴바