서버와 통신할 수 있는 커맨드 명령어 툴입니다. 웹개발에 매우 많이 사용되고 있는 무료 오픈소스입니다.
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/ |
-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가 포함되어 있습니다.
-
- curl 에 비해 사용이 쉬움
- json 지원 기능 내장
- 출력을 포맷팅하여 보여주므로 가독성이 뛰어남
- Form 과 file 업로드가 쉬움
- 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 |