유닉스 cURL

황제낙엽 2020.07.11 07:07 Vues : 700

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

 

 

 

 

 

 

 

No Titre sitelink1 Auteur Jour Vues
180 rm (파일과 디렉터리를 삭제한다) https://terms.naver.com/entry.nhn?docId=...ryId=59321  황제낙엽 2020.07.12 666
179 우분투(Ubuntu)에서 root로 전환후 비밀번호 변경 file   황제낙엽 2020.07.12 17833
178 [Docker기초] 명령어 리스트 https://blog.naver.com/pjt3591oo/221350092204  황제낙엽 2020.07.11 767
177 cURL, Docker, Portainer 설치 file https://docs.docker.com  황제낙엽 2020.07.11 609
» cURL file https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_curl  황제낙엽 2020.07.11 700
175 VirtualBox에 우분투(ubuntu-20.04-desktop-amd64.iso) 설치하기 file   황제낙엽 2020.07.11 685
174 Raspberry Pi에 우분투(ubuntu-20.04-preinstalled-server-arm64+raspi.img) 설치하기   황제낙엽 2020.07.10 821
173 리눅스 하드웨어 정보 및 용량 확인   황제낙엽 2020.07.08 2624
172 [Windows PowerShell] ssh, sftp file https://blog.naver.com/asdf2017/221763647776  황제낙엽 2020.07.08 2743
171 apt-get (Advanced Packaging Tool) [1] https://ko.wikipedia.org/wiki/%EC%96%B4%..._%ED%88%B4  황제낙엽 2020.07.08 741
170 [Docker] Docker, Portainer 입문용 블로그 링크 http://blog.naver.com/kidninja  황제낙엽 2020.07.07 672
169 VirtualBox에 라즈비안(2020-02-12-rpd-x86-buster) 설치하기 [1] file   황제낙엽 2020.07.01 713
168 "모니터 끄기" 단축아이콘과 단축키 만들기 file https://blog.naver.com/bizgood4911/221972709556  황제낙엽 2020.06.22 1457
167 문자열 치환하여 변수에 저장 https://blog.naver.com/digitalog/221488405815  황제낙엽 2020.05.21 827
166 도스, 환경변수 http://egloos.zum.com/sirjhswin/v/2371970  황제낙엽 2020.05.21 796
165 [도움말 캡쳐] FOR   황제낙엽 2020.05.21 637
164 [도움말 캡쳐] IF   황제낙엽 2020.05.21 761
163 [도움말 캡쳐] SET   황제낙엽 2020.05.21 652
162 [문법] 배치 명령어 기초 작성법 file https://www.snoopybox.co.kr/1404  황제낙엽 2020.05.21 738
161 도스 배치 사용법 https://sh1n2.tistory.com/entry/DOS-%EB%...9%EC%96%B4  황제낙엽 2020.05.21 701