유닉스 cURL

황제낙엽 2020.07.11 07:07 조회 수 : 15

@ 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의 차이점

캡처.JPG

* 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를 지원한다

 

 

 

 

 

 

 

번호 제목 sitelink1 글쓴이 날짜 조회 수
31 리눅스 OS 버전 확인 (ubuntu, debian)   황제낙엽 2020.07.13 57
30 우분투(Ubuntu)에서 root로 전환후 비밀번호 변경 file   황제낙엽 2020.07.12 17255
» cURL file https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_curl  황제낙엽 2020.07.11 15
28 VirtualBox에 우분투(ubuntu-20.04-desktop-amd64.iso) 설치하기 file   황제낙엽 2020.07.11 41
27 Raspberry Pi에 우분투(ubuntu-20.04-preinstalled-server-arm64+raspi.img) 설치하기   황제낙엽 2020.07.10 187
26 리눅스 하드웨어 정보 및 용량 확인   황제낙엽 2020.07.08 290
25 shutdown file https://terms.naver.com/entry.nhn?docId=...ryId=59321  황제낙엽 2018.07.06 124
24 다른 계정으로 전환하는 명령어(sudo / su / su -) file http://www.leafcats.com/168  황제낙엽 2018.06.24 615
23 ttyname failed 오류 처리방법 file http://bemeal2.tistory.com/119  황제낙엽 2018.06.13 941
22 Samba 설치   황제낙엽 2009.11.13 134
21 리눅스에서 파일 다운로드   황제낙엽 2009.11.13 13
20 리눅스 os(kernel) version 정보 확인   황제낙엽 2009.11.13 30
19 NetworkManager 관련   황제낙엽 2009.11.12 53
18 Fedora Network Manger(고정IP사용)   황제낙엽 2009.11.02 392
17 Fedora11 에서 Root로 로그인하는 법   황제낙엽 2009.10.30 12
16 [Fedora9] yum update 가 되지 않을 경우   황제낙엽 2008.10.17 14
15 Fedora Yum 저장소 변경하기   황제낙엽 2008.10.17 12
14 [Fedora 9] 한글 터미널 설정 및 yum 설정   황제낙엽 2008.10.16 180
13 페도라8 업데이트 후 다음과 같은 에러 메세지 (네트워크 관리자 애플릿이 필요한 몇몇 파일을 찾을 수 없습니다) http://limjunsung.egloos.com/648551  황제낙엽 2008.10.16 25
12 시스템 상황 보는 콘솔 명령어   황제낙엽 2008.04.24 14