Curl?

Curl?

curl 은 여러 도구 중에서도 HTTP와 HTTPS 프로토콜로 통신할 수 있는 비교적 간단한 명령줄 도구다.

curl은 HTTP 프로토콜을 처리함으로써 인증 테스트, 데이터 게시, SSL 사용과 GUI 웹브라우저에서 당연하게 여겨질 만한 각종 기능을 훨씬 용이하게 만들어주므로 웹 서버 문제를 해결하는데 원시 텔넷에 비해 이점이 많다.


아래와 같은 방식으로 curl명령어를 이용해 http://naver.com으로 HTTP요청을 보내면 html 형태로 응답이 오게 된다.

1
$ curl http://naver.com

image



문법

Keyword Description
-k https 사이트를 SSL certificate 검증없이 연결한다.
-l HTTP header 만 보여주고 content 는 표시하지 않는다
-D 에 HTTP header 를 기록한다.
-L 서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.
-d HTTP Post data
-v 동작하면서 자세한 옵션을 출력한다.
-J 어떤 웹서비스는 파일 다운로드시 Content-Disposition Header 를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다. -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다.
-o curl 은 remote 에서 받아온 데이타를 기본적으로는 콘솔에 출력한다. -o 옵션 뒤에 FILE 을 적어주면 해당 FILE 로 저장한다. (download 시 유용)
-O file 저장시 remote 의 file 이름으로 저장한다. -o 옵션보다 편리하다.
-s 정숙 모드. 진행 내역이나 메시지등을 출력하지 않는다. -o 옵션으로 remote data 도 /dev/null 로 보내면 결과물도 출력되지 않는다



사용법

다운로드 받은 파일을 콘솔로 출력
1
curl http://www.gnu.org/software/bash/manual/html_node/index.html


지정한 이름으로 저장
1
curl -o index.html http://www.gnu.org/software/bash/manual/html_node/index.html


서버의 filename으로 저장
1
curl -O  http://www.gnu.org/software/bash/manual/html_node/index.html


여러 url에서 동시에 다운로드
1
curl -O  http://www.gnu.org/software/bash/manual/html_node/index.html -O http://www.gnu.org/savannah-checkouts/gnu/libiconv/documentation/libiconv-1.13/iconv.1.html