유닉스 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 글쓴이 날짜 조회 수
195 WSL 설치후 VirtualBox가 구동이 안됨 file   황제낙엽 2020.08.04 75
194 Windows Terminal http://Microsoft Store  황제낙엽 2020.08.03 10
193 Windows 10에 Linux용 Windows 하위 시스템 설치(WSL) https://docs.microsoft.com/ko-kr/windows/wsl/install-win10  황제낙엽 2020.07.31 268
192 tar, gz file   황제낙엽 2020.07.19 14
191 dig - 네임 서버(DNS) 진단을 위한 룩업 유틸리티 https://www.codns.com/b/B05-110  황제낙엽 2020.07.19 62
190 [Docker] docker private registry on raspberry pi (https private registry, letsencrypt standalone auth) secret https://bloodguy.tistory.com/entry/Docke...spberry-pi  황제낙엽 2020.07.17 0
189 [Docker] private registry 설치/운용, OpenSSL, S3 저장소 이용, Authentification 추가 secret https://novemberde.github.io/2017/04/09/...try_0.html  황제낙엽 2020.07.17 0
188 [Docker] 도커 레지스트리: 프라이빗 도커 이미지 저장소(설치부터 S3 연동까지) secret https://www.44bits.io/ko/post/running-do...s3-storage  황제낙엽 2020.07.17 0
187 [Docker] docker private registry(도커 사설 레지스트리)에 대하여 https://www.44bits.io/ko/post/running-do...s3-storage  황제낙엽 2020.07.17 19
186 [Docker] Portainer for local Docker environments on Windows 10 file https://lemariva.com/blog/2018/05/tutori...windows-10  황제낙엽 2020.07.14 25686
185 netsh 명령으로 프로그램을 방화벽 규칙에 등록하기 file   황제낙엽 2020.07.14 41
184 Virtualbox : VT-x is not available 오류 조치 방법 file http://blog.naver.com/PostView.nhn?blogI...1315290857  황제낙엽 2020.07.14 13
183 Windows에서 포트 포워딩(Port Forwarding) 설정하기 - Netsh https://www.tuwlab.com/ece/29011  황제낙엽 2020.07.14 11
182 리눅스 OS 버전 확인 (ubuntu, debian)   황제낙엽 2020.07.13 57
181 Ubuntu+Docker+Node.js (Hello World) file   황제낙엽 2020.07.12 90
180 rm (파일과 디렉터리를 삭제한다) https://terms.naver.com/entry.nhn?docId=...ryId=59321  황제낙엽 2020.07.12 26
179 우분투(Ubuntu)에서 root로 전환후 비밀번호 변경 file   황제낙엽 2020.07.12 17255
178 [Docker기초] 명령어 리스트 https://blog.naver.com/pjt3591oo/221350092204  황제낙엽 2020.07.11 200
177 cURL, Docker, Portainer 설치 file https://docs.docker.com  황제낙엽 2020.07.11 16
» cURL file https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_curl  황제낙엽 2020.07.11 15