- curl = Client URL
- 다양한 프로토콜로 데이터를 전송해볼 수 있는 명령어 기반의 컴퓨터 프로그램
- 클라이언트에서 커맨드 라인이나 소스코드로 손 쉽게 웹 브라우저 처럼 활동할 수 있도록 해주는 기술(커맨드라인 Tool 혹은 라이브러리)
- cURL은 아래와 같은 프로토콜 등에 의해 전송되는 파일들을 위한 command line tool이다. (다양한 프로토콜 지원)
- HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, SSL, HTTP POST, HTTP PUT, FTP uploading, HTTP form기반의 upload, proxies, cookies, user+password 인증도 제공한다.
- cURL은 무료이며, 많은 운영체제에서 컴파일되고 동작하는 open software이다.
- libcurl은 일반 개발자가 많이 쓰는 HTTP, FTP를 시작해 매우 많은 프로토콜을 지원하는 무료 라이브러리다.
- url을 가지고 할 수 있는 것들은 다할 수 있다. 예를 들면, http 프로토콜을 이용해 웹 페이지의 소스를 가져온다거나 파일을 다운받을 수 있다. ftp 프로토콜을 이용해서는 파일을 받을 수 있을 뿐 아니라 올릴 수도 있다. 심지어 SMTP 프로토콜을 이용하면 메일도 보낼 수 있다
- curl [-option] http://gwonsungju.github.io 하게되면 소스가 화면으로 출력된다.
- 이외에 옵션을 이용하여 사용할 수 있다.
- -O : 파일 다운로드 > curl -O http://gwonsungju.github.io/file.zip
- -i : 헤더값 확인 > curl -i http://gwonsungjun.github.io
- -I : 사이트의 Header와 바디 정보를 함께 가져오기
- -v : request, response 어떻게 오가는지 확인.(헤더, 바디)
- -k : https 사이트를 SSL certificate 검증없이 연결.
- -s : 정숙 모드. 진행 내역이나 메시지등을 출력하지 않음.
- -H : 헤더 설정. 헤더 정보 전달
- -d : HTTP Post data (FORM 을 POST 하는 HTTP나 JSON 으로 데이타를 주고받는 REST 기반의 웹서비스 디버깅시 유용한 옵션)