curl과 wget의 차이점은 무엇입니까? [닫은]


38

이들 모두 curlwget등, 파일 다운로드를위한 사용하다 다른 한 사용하는 어떤 이유가 있나요?


1
"적절한 사용"정의
AB

12
의견에 근거한 투표 마감에 관해 : 두 도구의 차이점에 대한 질문은 의견에 따른 답변을 어떻게 장려합니까?
Michael Martin-Smucker

1
@ MichaelMartin-Smucker "웹 페이지를 다운로드해야 www.google.com이라고 말하면 wget 또는 curl을 찾아야합니까?" 만약 의견에 근거하지 않는다면 무엇입니까?
muru September

2
@muru, "웹 페이지 다운로드"의 의미에 따라 다릅니다. http 요청을 보내고 결과를 다시 받으려면 curl이 이상적입니다. 페이지, 링크 된 다른 페이지 및 관련 자산을 다운로드하려는 경우 curl이 작동하지 않으며 wget이 유일한 옵션입니다. 의견에 근거를 두지 않는 사실에는 차이가 있습니다.
바베큐

3
@muru 나는 ​​우리가 질문 뒤에 감정에 대한 다른 해석을 가지고 있다고 생각합니다. 내 해석에있어서, "나는 같은 일을하는 두 도구에 대해 들었습니다. 그 차이점은 무엇이며 언제 다른 것을 선택해야합니까?이 특정한 경우는 어떻습니까?" ... 나에게 합리적인 질문 인 것 같습니다.
Michael Martin-Smucker

답변:


33

"적절한 사용"을 정의한 후을 사용하십시오 wget.

왜? 그 이유는 다음과 같습니다.

재귀! curl과 비교하여 wget의 주요 장점은 재귀 적으로 다운로드하거나 심지어 원격 리소스에서 참조되는 모든 것을 HTML 페이지 또는 FTP 디렉토리 목록으로 다운로드하는 것입니다.


뻔뻔한 여기 에서 복사

curl

  • 도서관 . 모든 사람이 사용할 수있는 안정적인 API를 갖춘 크로스 플랫폼 라이브러리로 curl구동됩니다 libcurl. 이 차이는 내부적으로 일을하는 방법에 대해 완전히 다른 태도를 만들어 내기 때문에 중요합니다. 또한 "단순한"명령 줄 도구보다 라이브러리를 만드는 것이 약간 더 어렵습니다.

  • 파이프 . curl전통적인 유닉스 cat명령어 와 비슷하게 동작 하며 stdout, 더 많은 것을 전송 stdin하고 "모든 것이 파이프"방식으로 더 많은 것을 읽습니다 . wget더처럼 cp같은 아날로그를 사용하여.

  • 싱글 샷 . curl기본적으로 데이터의 단일 샷 전송을 수행합니다. 사용자가 지정한 URL 만 전송하며 재귀 적 다운로드 로직이나 HTML 파서는 포함하지 않습니다.

  • 더 많은 프로토콜 . curlFTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMB / CIFS, SMTP, RTMP 및 RTSP를 지원합니다. Wget은 HTTP, HTTPS 및 FTP 만 지원합니다.

  • 더 휴대용 . curl보다 많은 플랫폼에서 빌드하고 실행합니다 wget. 예를 들면 : Unix 클론이 아닌 OS / 400, TPF 및 기타 "이국적인"플랫폼.

  • 더 많은 SSL 라이브러리 및 SSL 지원 . curl11 개의 서로 다른 SSL / TLS 라이브러리 중 하나를 사용하여 빌드 할 수 있으며 프로토콜 세부 사항에 대한 제어력과 폭 넓은 지원을 제공합니다. curl공개 키 고정을 지원합니다.

  • HTTP 인증 . curl기본, 다이제스트, NTLM 및 협상과 같은 HTTP 프록시를 통해 더 많은 HTTP 인증 방법을 지원합니다.

  • SOCKS . curl프록시 액세스를위한 여러 SOCKS 프로토콜 버전을 지원합니다

  • 양방향 . curl업로드 및 전송 기능을 제공합니다. wget일반 HTTP POST 지원 만 제공합니다.

  • HTTP 멀티 파트 / 양식-데이터 전송- 사용자가 HTTP "업로드"를 수행하고 일반적으로 브라우저를 에뮬레이션하고보다 광범위하게 HTTP 자동화를 수행 할 수 있습니다.

  • curlgzipContent-Encoding을 지원 하고 확장 하며 자동 압축 풀기를 수행합니다.

  • curl 전송 인코딩 된 HTTP를 제공하고 압축 해제를 수행하지만 wget은 압축을 해제하지 않습니다.

  • curl HTTP / 2를 지원하며 Happy Eyeballs를 사용하여 이중 스택 연결을 수행합니다.

  • 훨씬 더 많은 개발자 활동 . 이것이 논란의 여지가 있지만 여기서는 메일 링리스트 활동, 소스 코드 커밋 빈도 및 릴리스 빈도의 세 가지 메트릭을 고려합니다. 이 두 프로젝트를 따르는 사람은 컬 프로젝트가이 모든 영역에서 훨씬 더 빠른 속도를 보이며 10 년 이상 지속 된 것을 볼 수 있습니다. Openhub에서 비교


wget

  • wget명령 줄 전용입니다. 도서관이 없습니다.

  • 재귀 ! wgetcurl과 비교할 때 가장 큰 장점은 재귀 적으로 다운로드하거나 심지어 원격 리소스에서 참조되는 모든 것을 HTML 페이지 또는 FTP 디렉토리 목록으로 다운로드하는 것입니다.

  • 더 오래된 . wget1995 년으로 거슬러 올라가는 한편 curl1996 년 말까지 추적 할 수 있습니다.

  • GPL . wget100 % GPL v3입니다. curl은 MIT 라이센스입니다.

  • GNU . wgetGNU 프로젝트의 일부이며 모든 저작권은 FSF에 할당됩니다. curl 프로젝트는 완전히 독립형이며 Daniel이 소유 한 거의 모든 저작권으로 조직을 양육하지 않아도됩니다.

  • wget원격 URL을 로컬 파일로 다운로드하기위한 추가 옵션이 필요하지 않지만, 또는이 curl필요합니다 .-o-O

  • wget 쿠키 도메인을 처리하기위한 공개 접미사 목록을 지원하지만 curl은 지원하지 않습니다.

  • wget SSL / TLS 지원을 위해 GnuTLS 또는 OpenSSL 만 지원

  • wget HTTP 프록시를 통한 유일한 인증 유형으로 기본 인증 만 지원

  • wget 양말 지원이 없습니다

  • 조기에 손상된 전송을 복구하고 다운로드를 계속하는 기능에는 컬이 없습니다.

  • wget 쿼티 키보드에서 왼손 만 사용하여 입력 할 수 있습니다!


1
예, wget은 미러링에 좋습니다!
joeytwiddle

1
컬 프로젝트는 전적으로 독립형이며, Daniel이 소유 한 거의 모든 저작권으로 조직을 양육하지 않아도됩니다. " 그것이 나쁜
바베큐

"조기 깨진 전송에서 복구하고 다운로드를 계속하는 기능은 컬에 대응하는 것이 아닙니다." 이 문장이 잘못 이해 되었습니까? curl -C -다운로드 가 계속 끊어 지지 않습니까?
Siyuan Ren

1
wget 을 권장 합니까? 자신이 작성한 비교를 본 후에도 사운드가 훨씬 우수합니다. wget can be typed in using only the left hand on a qwerty keyboard!, WTF ?? wget requires no extra options to simply download a remote URL to a local file, while curl requires -o or -O.
Anmol Singh Jaggi

2
크기도 중요 : 신선한 우분투 이미지에서 wget 크기는 2M과 curl 5M 포장 (깊이, x3 총 포장 풀기)
Eran W

19

같은 다운로드 할 수있는 많은 도구가 있습니다 curl, snarf, wget, pavuk, fget, fetch, lftp, aria2, HTTrack등을 사용하여 귀하의 요구 사항과 어떤 당신이 다운로드와 함께 사용하고자하는 기능에 따라. 기능 표를 확인 하고 적절하게 사용 하십시오 .

컬 :

  • 컬은 더 많은 프로토콜 FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMP 및 RTSP를 지원합니다
  • 컬은 더 많은 SSL 라이브러리를 지원합니다
  • Curl은 기본, 다이제스트, NTLM 및 협상과 같은 HTTP 프록시를 통해 더 많은 HTTP 인증 방법을 지원합니다.
  • 컬은 모든 사람이 사용할 수있는 안정적인 API를 갖춘 크로스 플랫폼 라이브러리 인 libcurl에 의해 구동됩니다.

Wget :

  • wget은 HTTP, HTTPS 및 FTP를 지원하지만
  • Wget은 SSL / TLS 지원을 위해 GnuTLS 또는 OpenSSL 만 지원합니다
  • Wget은 HTTP 프록시를 통한 유일한 인증 유형으로 기본 인증 만 지원합니다.
  • Wget은 명령 줄 도구 일 뿐이며 라이브러리가 없습니다.

더 많은 정보를위한 중요 자료 :


"wget은 명령 줄 도구이며 라이브러리 만 알고 있습니다." 나는 그 줄을 이해하지 못한다.
Lucio

3

그들은 많은 기능을 curl가지고 있지만 더 많은 옵션이 있습니다. 들어 wget는 가끔 잎을 통해 충분한있을 수 man wget있지만, 위해 curl내가 연구 할 필요가 이 웹 페이지 브라우저에서합니다. 귀하의 브라우저가 할 수있는 모든 일도 할 수 있다고 생각 curl합니다.


2

wget과 curl 사이에는 또 다른 차이점이 있습니다.

Wget은 주로 인터넷 컨텐츠를 빠르고 간단하게 검색하기위한 독립형 명령 행 유틸리티입니다.

한편 컬은 기본적으로 강력한 libcurl 라이브러리의 터미널 프론트 엔드입니다. Libcurl은 모든 형태와 풍미의 URL로 작업 할 수있는 매우 강력한 도구 세트를 제공하며 거의 모든 언어와 플랫폼에서 사용할 수 있습니다. 컬은 기본적으로 쉘 스크립트에서이 라이브러리를 사용할 수있는 기능을 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.