코딩마을방범대
우분투의 CURL 본문
728x90
Curl은 데이터를 주고받을 수 있는 툴이다.
(Command Line용 Data Transfer Tool)
다운로드와 업로드 모두 가능하며, HTTP / HTTPS / FTP / LDAP / SCP / TELNET / SMTP / POP3 등 주요 프로토콜을 지원한다.
사용하기
다운로드
$ sudo apt install curl
사용
옵션 | 옵션(long) | 설명 |
-k | --insecure | https 프로토콜에서 SSL 인증서에 대한 검증없이 연결 |
-f | --fail | HTTP 오류 시 자동으로 실패 (출력 없음) |
-s | --silent | 진행 과정이나 에러 정보를 보여주지 않음 (HTTP response code 만 가져오거나 할 경우 유리) |
-S | SSL 인증관련 | |
-L | --location | 서버에서 301, 302 응답이 오면 redirection URL로 따라감 --max-redirs 옵션 뒤에 숫자로 몇 번의 리디렉션까지 따라갈 것인지를 적을 수 있음(기본 값은 50) |
-o | --output FILE | curl로 받아온 내용을 FILE 이라는 이름의 파일로 저장 (ex. curl -o linux.tar.xz https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.5.tar.xz) |
-O | --remote-name | 파일을 원래 파일 이름으로 저장 |
-I | --head | HTTP 헤더만 보여주고 컨텐츠는 표시하지 않음 (ex. curl -I https://www.ubuntu.com/) |
-i | --include | 응답에 Content 만 출력하지 않고 서버의 Reponse 도 포함해서 출력 (디버깅에 유용) |
-D | --dump--header <file> | HTTP 헤더를 file에 기록(덤프) |
-d | --data | HTTP POST 요청 데이터 입력 |
-J | --remote-header-name | 헤더에 있는 파일 이름으로 다운로드 파일을 저장 |
-X | --request | 요청시 사용할 메소드의 종류 (GET, POST, PUT, PATCH, DELETE) |
-A | --user-agent | 서버에 User-Agent <name> 보내기 |
-G | 전송할 사이트 url 및 ip 주소 | |
-H | 전송할 헤더를 지정 | |
-v | --verbose | 동작하면서 자세한 헤더 통신 옵션을 출력 |
-C | --continue-at | 파일 다운로드 재개 |
포스트맨을 활용하면 간편하게 curl 사용이 가능하다!
평소 사용하던대로 값을 넣어주고 우측의 메뉴 중 </> 를 클릭하면 curl 소스가 나온다!
예제1.
- -d 옵션으로 body 파라미터를 앞에 쓰고, 그 뒤에 POST를 처리하는 주소를 넣는다.
- 파라미터는 무조건 먼저 인코딩 된 상태여야 한다.
- POST의 기본 Content-Type 은 application/x-www-form-urlencoded 이다.
$ curl -d "key1=value1&key2=value2" \
-H "Content-Type: application/x-www-form-urlencoded" \
-X POST http://localhost:8000/data
예제2.
날씨 조회가 가능!!
$ curl http://wttr.in/Seou
예제2.
달 상태 조회 가능!!
$ curl http://wttr.in/Moon@2023-09-26
wget / curl 공통점
- HTTP, HTTPS, FTP 프로토콜을 통해 컨텐츠를 다운로드 하는 커맨트 라인 툴
- HTTP POST request 를 지원
- HTTP 쿠키를 지원
- 스크립트처럼 사용자 인터렉션없이 수행될 수 있도록 설계
- 오픈소스이며 무료90년대에 시작한 프로젝트 (wget 은 1995년, curl 은 1996년에 시작)metalink 를 지원
wget / curl 차이점
wget
- 간단하고 직관적 (만약, 별다른 옵션없이 컨텐츠를 조금 더 빠르게 다운로드하려고 한다면 wget 이 적합)
- 별도의 라이브러리를 지원하지 않음
- 재귀적으로 다운로드즉, 페이지에 있는 모든 내용이나 FTP 디렉터리에 있는 모든 파일들을 한 번에 그대로 복사
- curl 에 비하여 더 오래되었음
curl
- 복잡한 컨텐츠를 다운로드 하려고 한다면 wget 보다는 curl 이 적합
- libcurl 라이브러리로 더 강력한 기능들을 추가/사용할 수 있음
- stdin 또는 stdout 의 pipe 를 이용하는 전통적인 unix 스타일의 방식도 지원
- LDAP 이나 Samba 공유도 지원양방향 (wget 은 일반 HTTP POST request 만 지원)
- SSL 을 지원gzip 압축 및 해지를 지원
참고사이트
Ubuntu 18.04 : Curl 설치, 사용 방법, 예제, 명령어
728x90
'💡 백엔드 > 우분투' 카테고리의 다른 글
Nginx의 현재 연결 수, 처리된 요청 수 정보를 확인하는 방법 (0) | 2023.11.02 |
---|---|
Nginx를 이용한 캐시 설정 (1) | 2023.11.02 |
우분투에 OpenLDAP & phpLdapAdmin 구축하기 (0) | 2023.09.12 |
우분투에 FreeRadius 구축하기 (1) | 2023.09.11 |
MobaXterm, vi 편집기 단축키 정리 (0) | 2023.09.11 |