코딩마을방범대

우분투의 CURL 본문

💡 백엔드/우분투

우분투의 CURL

신짱구 5세 2023. 9. 27. 14:24

 

 

 

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 설치, 사용 방법, 예제, 명령어

[Ubuntu] CURL 설치하기

CURL 명령어 사용법 💯 완전 총정리

 

 

 

SMALL