서버와 통신할 수 있는 커맨드 명령어 툴입니다. 웹개발에 매우 많이 사용되고 있는 무료 오픈소스입니다.

curl은 수 많은 프로토콜을 지원합니다. 

URL로 데이터를 전송하기 위한 명령줄 도구 및 라이브러리입니다.

 

 

Curl 설치

현재 대부분의 Linux 배포 환경에는 curl 패키지가 미리 설치되어 있습니다. 

Curl이 설치되지 않은 경우 배포의 패키지 관리자를 사용하여 Curl을 쉽게 설치할 수 있습니다.

Ubuntu 및 Debian에 Curl을 설치

sudo apt update
sudo apt install curl

 

CentOS 및 Fedora에 Curl을 설치

sudo yum install curl

 

Window에 Curl을 설치

curl은 https://curl.haxx.se/download.html 에서 window binary 버전을 받아 설치하거나 윈도우에 chocolatey가 설치되어 있으면 아래 명령어로 설치합니다.

choco install curl

 

 

 

Curl 사용법

curl 명령의 구문은 다음과 같습니다.

  • curl [option] [URL]
curl [options] [URL...]

 

가장 간단한 형태로 옵션 없이 호출할 경우, Curl은 지정된 리소스를 표준 출력에 표시합니다.

이 명령은 터미널 창에 example.com 홈페이지의 소스 코드를 인쇄합니다.

프로토콜을 지정하지 않은 경우 HTTP로 기본 설정됩니다.

curl https://example.com/

 

URL의 HTTP 헤더를 가져오기

HTTP 헤더는 사용자 에이전트, 내용 유형 및 인코딩과 같은 정보를 포함하는 콜론으로 구분된 키- 값입니다. 헤더는 요청 또는 응답과 함께 클라이언트와 서버 간에 전달됩니다.

-I 옵션을 사용하여 지정된 url의 HTTP 헤더만 가져옵니다.

curl -I https://example.com/

 

-o 옵션을 사용하여 url 내용을 파일로 기록합니다.

curl -o example.html https://example.com/

 

 

 

curl 주요 options (http/https 관련 옵션만 정리)

short long 설명 비고
-k --insecure https 사이트를 SSL certificate 검증없이 연결한다. wget 의 --no-check-certificate 과 비슷한 역할 수행
-l --head HTTP header 만 보여주고 content 는 표시하지 않는다  
-D --dump-header <file> <file> 에 HTTP header 를 기록한다.  
-L --location 서버에서 HTTP 301이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.
--max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있다. 기본 값은 50이다
curl -v daum.net 을 실행하면 결과값으로 다음과 같이 HTTP 302 가 리턴된다.
< HTTP/1.1 302 Object Moved
< Location: http://www.daum.net/
-L 옵션을 추가하면 www.daum.net 으로 재접속하여 결과를 받아오게 된다.
-d --data HTTP Post data FORM 을 POST 하는 HTTP나 JSON 으로 데이타를 주고받는 REST 기반의 웹서비스 디버깅시 유용한 옵션이다
-v --verbose  동작하면서 자세한 옵션을 출력한다.  
-J --remote-header-name 어떤 웹서비스는 파일 다운로드시 Content-Disposition Header 를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다. -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다. curl 7.20 이상부터 추가된 옵션
-o --output FILE curl 은 remote 에서 받아온 데이타를 기본적으로는 콘솔에 출력한다. -o 옵션 뒤에 FILE 을 적어주면 해당 FILE 로 저장한다. (download 시 유용)  
-O --remote-name file 저장시 remote 의 file 이름으로 저장한다. -o 옵션보다 편리하다.  
-s --silent silent모드. 진행 내역이나 메시지등을 출력하지 않는다. -o 옵션으로 remote data 도 /dev/null 로 보내면 결과물도 출력되지 않는다 HTTP response code 만 가져오거나 할 경우 유리
-X --request Request 시 사용할 method 종류(GET, POST, PUT, PATCH, DELETE) 를 기술한다.  
-i --include 응답에 Content 만 출력하지 않고 서버의 Reponse 도 포함해서 출력한다. (디버깅에 유용)  

출저: https://www.lesstif.com/pages/viewpage.action?pageId=14745703

 

 

 

 

 

 

httpie (click)

HTTPie는 사용자에게 더 친숙하고 발전된 명령줄 HTTP 클라이언트입니다. 또한 보다 표현력 있고 색상으로 구분된 UI가 포함되어 있습니다. 

    1. curl 에 비해 사용이 쉬움
    2. json 지원 기능 내장
    3. 출력을 포맷팅하여 보여주므로 가독성이 뛰어남
    4. Form 과 file 업로드가 쉬움
    5. HTTP 인증 및 커스텀 헤더 설정등

'이것저것' 카테고리의 다른 글

WSL2에 nginx 설치하기  (0) 2022.01.23
httpie  (0) 2022.01.18
Windows Powershell 항상 admin으로 실행하기  (0) 2022.01.02
스택(Stack)과 힙(Heap) 차이점  (0) 2022.01.02
전처리기  (0) 2021.12.31

+ Recent posts