유닉스 cURL

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

@ 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 글쓴이 날짜 조회 수
» cURL file https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_curl  황제낙엽 2020.07.11 608
175 VirtualBox에 우분투(ubuntu-20.04-desktop-amd64.iso) 설치하기 file   황제낙엽 2020.07.11 596
174 Raspberry Pi에 우분투(ubuntu-20.04-preinstalled-server-arm64+raspi.img) 설치하기   황제낙엽 2020.07.10 749
173 리눅스 하드웨어 정보 및 용량 확인   황제낙엽 2020.07.08 2395
172 [Windows PowerShell] ssh, sftp file https://blog.naver.com/asdf2017/221763647776  황제낙엽 2020.07.08 840
171 apt-get (Advanced Packaging Tool) [1] https://ko.wikipedia.org/wiki/%EC%96%B4%..._%ED%88%B4  황제낙엽 2020.07.08 629
170 [Docker] Docker, Portainer 입문용 블로그 링크 http://blog.naver.com/kidninja  황제낙엽 2020.07.07 607
169 VirtualBox에 라즈비안(2020-02-12-rpd-x86-buster) 설치하기 [1] file   황제낙엽 2020.07.01 635
168 "모니터 끄기" 단축아이콘과 단축키 만들기 file https://blog.naver.com/bizgood4911/221972709556  황제낙엽 2020.06.22 1208
167 문자열 치환하여 변수에 저장 https://blog.naver.com/digitalog/221488405815  황제낙엽 2020.05.21 739
166 도스, 환경변수 http://egloos.zum.com/sirjhswin/v/2371970  황제낙엽 2020.05.21 694
165 [도움말 캡쳐] FOR   황제낙엽 2020.05.21 558
164 [도움말 캡쳐] IF   황제낙엽 2020.05.21 689
163 [도움말 캡쳐] SET   황제낙엽 2020.05.21 578
162 [문법] 배치 명령어 기초 작성법 file https://www.snoopybox.co.kr/1404  황제낙엽 2020.05.21 618
161 도스 배치 사용법 https://sh1n2.tistory.com/entry/DOS-%EB%...9%EC%96%B4  황제낙엽 2020.05.21 612
160 문서 파일의 내용을 쉘프로그램 변수에 담기   황제낙엽 2020.05.21 590
159 시스템 오류 1219이(가) 생겼습니다. (net use) file   황제낙엽 2020.03.13 996
158 .NET Framework 3.5 설치오류 (0x800F081F) 해결방법(Windows 10) file https://blog.naver.com/sanghun0011/221664681482  황제낙엽 2020.02.27 721
157 프로세스 강제 종료 명령어(taskkill)   황제낙엽 2019.12.31 676