sitelink1 | https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_curl |
---|---|
sitelink2 | https://unix.stackexchange.com/questions...l-and-wget |
sitelink3 | |
extra_vars6 |
@ cURL이란
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 프로토콜을 이용하면 메일도 보낼 수 있다
- 커맨드라인에서 REST API 요청을 보내기 위한 목적으로도 많이 쓰이는 명령어이다. -X 옵션을 통해 지원한다.
예를 들어
curl -X GET http://127.0.0.1/api/users
curl -X POST http://127.0.0.1/api/users/input
이런 식으로, resty API를 사용해 쉽게 cURL rest api 테스트를 할 수도 있다.
@ 설치방법
# apt-get install curl
@ 버전확인
# curl -V
@ 주요옵션
옵션 | 설명 |
---|---|
-H, --header | 헤더를 보냄 |
-i, --include | Include protocol headers in the output (H/F) |
-I, --head | Show document info only |
-k, --insecure | Allow connections to SSL sites without certs (H) |
-s, --silent | 진행 상태, 에러 메시지등을 보여주지 않음 |
-S, --show-error | -s와 함께 사용되며 실패 시 에러메시지 출력 |
-L, --location | 요청페이지가 다른 위치로 옮겨 졌을 경우 새로운 페이지로 다시 재요청 |
-X, --request | HTTP 메소드를 설정 할 수 있음 |
@ wget과 curl의 차이점
* wget의 특징
▷ wget은 단지 HTTP HTTPS FTP 서버로부터 파일을 다운로드 받을수 있게 해준다
▷ link를 연결하면, 자동으로 link가 연결된 곳으로부터 파일을 자동으로 download 하게 된다
▷ wget은 요청을 자동으로 build 하게 된다
* curl의 특징
▷ Curl의 차이점은 요청을 자동으로 build 하는 것이 아니라 사용자가 원하면 요청을 build 한다
▷ 사용자에게 많은 자유도를 부여하고, 굉장한 debugging tool로 사용할 수 있다
▷ Curl은 HTTP HTTPS FTP FTPS Gopher SCP SFTP TFTP Telnet DICT LDAP LDAPS IMAP POP3 SMP RTSP URI를 지원한다