Jaka jest różnica między curl i wget?


258

Chciałbym poznać różnicę między curli wget. Oba są używane do pobierania plików i dokumentów, ale jaka jest zasadnicza różnica między nimi.

Dlaczego są dwa różne programy?


5
Główna różnica polega na tym, że wget służy do pobierania rzeczy, a curl służy do testowania komunikacji przy użyciu określonego protokołu.
Pithikos,


Odpowiedzi:


265

Główne różnice to:

  • wgetgłówną zaletą w porównaniu z curlmożliwością pobierania rekurencyjnego.
  • wgetjest tylko wierszem poleceń. Nie ma lib ani nic, ale curlfunkcje są wspierane przez libcurl.
  • curlwspiera FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMPi RTSP. wgetwspiera HTTP, HTTPSi FTP.
  • curlbuduje i działa na większej liczbie platform niż wget.
  • wgetjest wydany na licencji copyleft wolnego oprogramowania (GNU GPL). curljest wydany na podstawie licencji na bezpłatne oprogramowanie (pochodna MIT).
  • curloferuje możliwości wysyłania i wysyłania. wgetoferuje tylko zwykłą obsługę HTTP POST.

Możesz zobaczyć więcej szczegółów pod następującym linkiem:

curl vs Wget


1
Dzięki, właśnie o to się zastanawiałem przez kilka godzin. Użyłem wget, aby zrobić rekurencyjnego pająka na stronie, wydaje się być zatrzymany na stronie, która zawiera jedenaście bazillionowych linków. W rzeczywistości działa przy 100% procesorze na jednym rdzeniu. Miałem nadzieję, że jest coś lepszego, co zrobi z tą nowomodną wielordzeniową rzeczą, o której słyszałem.
Brian Topping

1
Jedną z rzeczy wget, które zostały pominięte w tej odpowiedzi, jest możliwość tworzenia kopii lustrzanych http (lub „spidering”). curljest bardzo dobra w tym, co robi, ale sama w sobie nie jest przeznaczona do tworzenia kopii lustrzanej strony internetowej.
jsbillings

A co z wput będącym aliasem obsługującym ftp.
mckenzm

1
Wyrażenia te nie mają sensu: „i wszystkie prawa autorskie są przypisane FSF”, „jest całkowicie samodzielny i niezależny, bez organizacji rodzicielskiej”. Oczywiste jest, że autor cURL jest jego właścicielem praw autorskich. Oczywiste jest, że autor wget jest właścicielem praw autorskich do niego. Ale oba są darmowe, jak w oprogramowaniu wolności. Zamiast tego możesz powiedzieć, że wget jest objęty licencją copyleft, a cURL na licencji permissive.
Valerio Bozz

1
@ValerioBozz: Właściwie nie. Zarówno curl, jak i wget są projektami społecznościowymi. Dzięki curl każda osoba jest właścicielem praw autorskich do kodu, który przekazuje. W Wget, podobnie jak w przypadku większości innych programów GNU, różni autorzy przekazują swoje prawa autorskie do FSF. Oznacza to, że nie posiadają już tego kodu. Ma to na celu umożliwienie FSF ścisłego egzekwowania copyleft i, w razie potrzeby, ponownej licencji na kod.
darnir

57

W kilku słowach:

  • wget to narzędzie do pobierania plików z serwerów
  • curl to narzędzie, które pozwala wymieniać żądania / odpowiedzi z serwerem

wget

Wget pozwala tylko pobierać pliki z HTTP/ HTTPSlub FTPserwera. Dajesz mu link, a on automatycznie pobiera plik, do którego prowadzi link. Tworzy żądanie automatycznie.

kędzior

Zwijanie w przeciwieństwie do wget pozwala zbudować żądanie, jak chcesz . Daje to dużą swobodę użytkownikowi i stanowi niesamowite narzędzie do debugowania. Dodaj do tego drugą kluczową różnicę między nimi: mnóstwo obsługiwanych protokołów. Curl podpory FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP, RTSPi URI. Połącz te dwa kluczowe punkty, aby uzyskać niesamowite narzędzie do testowania protokołów, testowania konfiguracji serwera itp.

Jak wielu mówi, możesz pobrać plik za pomocą curl. Jest to jednak przydatne tylko wtedy, gdy chcesz pobrać plik z serwera, który używa protokołu, który nie obsługuje wget.


2
W rzeczywistości wgetrównież następuje przekierowanie, a następnie zapisuje odpowiedź w przeciwieństwie do curl. Oba mogą osiągnąć odwrotność do domyślnego zachowania wget -qO - http://google.co.uk/ lubcurl http://google.co.uk/ > index.html
Matt

1
@mtm curl http://google.co.uk/ > index.htmlnie korzysta jednak z wbudowanej funkcjonalności. W każdym razie głównym rozróżnieniem jest cel, dla którego każde narzędzie zostało stworzone. Nie można zaprzeczyć, że narzędzia ewoluują i wiele razy odbiegają od początkowej trajektorii.
Pithikos

1
@mtm curl http://google.co.uk -o index.htmlużyłby wewnętrznych elementów curl zamiast przekierowania wyjścia powłoki za pomocą >.
Petrus Repo

19

W rzeczywistości główna różnica polega na tym, że curlzawiera bibliotekę ( libcurl), a ta biblioteka jest powszechnie używana przez inne aplikacje. wgetjest samodzielny.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.