본문 바로가기

IT/Linux

curl과 wget 차이점

웹페이지 혹은 웹에서 다운로드를 명령행에서 다운받을 때

wget 또는 curl 명령을 사용합니다.

(과거에는 wget 을 더 애용했습니다. 그냥 단순 url 내용을 가져올 요량으로요)

 

wget이나 curl을 사용하는데 가장 큰 차이점은 Recurring입니다. wget은 되는 반면 curl은 안됩니다. 따라서 curl은, 주로, 단일 혹은 3개 이하의 대용량(2GB) 이하의 파일을 다운 받을 때 유용하게 쓰입니다.

 

둘다 지원하는 내용

- FTP, HTTP, HTTPS 프로토콜을 이용하여 명령행으로 컨텐츠 다운로드

- 스크립트 등을 이용하여 자동으로 작업 가능

- 오픈소스 및 프리소프트웨어

- 90년대 프로젝트 시작

 

CURL의 특징

- libcurl 이용 : 크로스 플랫폼의 아주 많이 사용하는 라이브러리

- Pipes : stdin 또는 stdoout의 pipe을 이용하는 전통적인 unix 스타일의 방식도 지원

- Return code : 문서화 되어 있는 한개 이상의 다양한 결과 코드를 리턴

- Single shot : 단일 URL의 컨텐츠를 가져옴

- 더 많은 프로토콜 지원 : FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, 

FILE, POP3, IMAP, SMTP, RTMP, RTSP 등의 프로토콜 지원 (wget은 HTTP, HTTPS, FTP 지원)

- Portable : UNIX 뿐만 아니라 OS/400, TPF 등과 같은 플랫폼까지도 지원

- SSL 라이브러리 : SSL 지원

- 다양한 HTTP 인증 방법 지원 : HTTP Proxy 환경에서 사용 가능

- 양방향 : wget이 일반 HTTP POST만 지원하는데 반해 업로드와 보내는 방법 지원

- HTTP multipart/form-data : HTTP "upload" 뿐만 아니라 HTTP 자동화 등에 사용 가능

- 압축 : gzip 압축 및 해지 지원

 

Wget 특징

- 명령행으로만 존재. (별도의 라이브러리 지원 불가. 따라서 python 모듈 등이 없음)

- Recursive! : curl과 차별되는 기능으로서 리커시브하게 컨텐츠를 가져올 수 있음.

- 오래됨 : 1995년에 시작된 반면, curl은 1997년에 시작됨

- curl에 비하여 개발이 덜 활발함.

- HTTP 1.0 : HTTP 1.1을 아직 지원하지 않는다고 하는군요. (마지막 갱신 시점이 2011/01/24 입니다)

- GPL : Wget은 GPL v3이고 curl은 MIT 라이센스 입니다.

- GNU : GNU 프로젝트 중에 속해있고 모든 카피라이트는 FSF에 있습니다. 

 

결론적으로 wget보다 curl이 기능이 더 많다는 이야기네요.

 

사용예

다운로드 속도를 제어 (throttle download speed)
이 옵션은 curl, wget 둘 다 동일하게 지원. 아래는 100 Kb/sec 으로 제한하는 방법.
$ curl --limit-rate 100K
$ wget --limit-rate=100k

파일 일부분 다운로드  (partial download)
HTTP header에 'Range' 를 넣음. curl에서 --header 옵션으로 header값을 추가할 수 있음.
아래는 http://abc.com/aaa.txt 에서 앞부분 50k byte 정도만 다운로드 받아 aaa.5k.txt 로 저장하는 방법.
$ curl --header "Range: bytes=0-50000" -o aaa.5k.txt  http://abc.com/aaa

정확한 주소값 다운로드

curl -O [URL]

 

다운로드 시 output 파일명 지정

curl -o [shortname] [URL]

 

다중 파일 다운

curl -O [URL 1] [URL 2] [URL 3]

 

Authentication

curl -u user:pass -O [URL]

또한, scp나 ftp를 이용하면 쉽게 파일 교환을 할 수 있습니다.

 


 

쓸때 없는 터미널 팁, 춤추는 ASCII 앵무새 | curl - Mac In June

아주 쓸때없는 터미널 팁으로 춤추는 ASCII 앵무새를 출력하는 커맨드입니다. 일상에 지친(?)분들을 위해 재미삼아 돌려보시기 바랍니다. curl parrot.live 실제 코드에 관심 있으신 분들은 아래 링크�

macinjune.com

 

 

 

*curl 공식페이지 

 

curl

command line tool and library for transferring data with URLs Supports... DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL cert

curl.haxx.se

 

*wget 공식페이지 

 

Wget - GNU Project - Free Software Foundation

GNU Wget GNU Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols. It is a non-interactive commandline tool, so it may easily be called from scripts, cron jobs, terminals without X-Wi

www.gnu.org

GNU Wget

www.gnu.org

공통점

'IT > Linux' 카테고리의 다른 글

Library 경로 설정  (0) 2020.09.25
동적 링크 라이브러리, ldconfig  (0) 2020.09.25
ls -al, 파일 정보 확인  (0) 2020.09.23
find 파일 찾기  (0) 2020.09.23
debian, ubuntu  (0) 2020.09.23