Oba z nich curli wgetto wykorzystanie do pobierania plików, itd. Czy istnieje jakikolwiek powód, aby zastosować jeden nad drugim?
Oba z nich curli wgetto wykorzystanie do pobierania plików, itd. Czy istnieje jakikolwiek powód, aby zastosować jeden nad drugim?
Odpowiedzi:
Po zdefiniowaniu „prawidłowego użytkowania” użyj wget.
Czemu? Dlatego:
Rekurencyjne! Główną mocną stroną wget w porównaniu do curl jest możliwość pobierania rekurencyjnego, a nawet po prostu pobierania wszystkiego, do czego odnosi się zdalny zasób, czy to strona HTML, czy lista katalogów FTP.
Bezwstydnie skopiowane stąd
curlbiblioteka . curljest zasilany przez libcurl- wieloplatformową bibliotekę ze stabilnym API, z którego mogą korzystać wszyscy. Ta różnica jest znacząca, ponieważ tworzy zupełnie inne podejście do robienia rzeczy wewnętrznie. Tworzenie biblioteki jest nieco trudniejsze niż „zwykłe” narzędzie wiersza poleceń.
Rury . curldziała bardziej jak tradycyjne catpolecenie Uniksa , wysyła więcej rzeczy stdouti odczytuje więcej stdinw sposób „wszystko jest potokiem”. wgetjest bardziej jak cpprzy użyciu tego samego analogu.
Pojedynczy strzał . curljest zasadniczo stworzony do jednorazowego przesyłania danych. Przesyła tylko adresy URL określone przez użytkownika i nie zawiera żadnej rekurencyjnej logiki pobierania ani żadnego parsera HTML.
Więcej protokołów . curlobsługuje FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMB / CIFS, SMTP, RTMP i RTSP. Wget obsługuje tylko HTTP, HTTPS i FTP.
Bardziej przenośny . curlbuduje i działa na wielu platformach niż wget. Na przykład: OS / 400, TPF i inne bardziej „egzotyczne” platformy, które nie są prostymi klonami uniksowymi.
Więcej bibliotek SSL i obsługa SSL . curlmoże być zbudowany z jedną z jedenastu (11!) różnych bibliotek SSL / TLS i oferuje większą kontrolę i szerszą obsługę szczegółów protokołu. curlobsługuje przypinanie klucza publicznego.
HTTP auth . curlobsługuje więcej metod uwierzytelniania HTTP, szczególnie przez proxy HTTP: Basic, Digest, NTLM i Negotiate
Skarpety . curlobsługuje kilka wersji protokołu SOCKS dla dostępu do proxy
Dwukierunkowy . curloferuje możliwości wysyłania i wysyłania. wgetoferuje tylko zwykłą obsługę HTTP POST.
Przesyłanie danych wieloczęściowych / formularzy HTTP , które pozwala użytkownikom na „przesyłanie” HTTP i ogólnie emuluje przeglądarki oraz automatyzację HTTP w szerszym zakresie
curlobsługuje gzipi zawyża kodowanie treści oraz wykonuje automatyczną dekompresję
curl oferuje i wykonuje dekompresję HTTP z kodowaniem transferu, wget nie
curl obsługuje HTTP / 2 i wykonuje połączenia z dwoma stosami za pomocą Happy Eyeballs
Znacznie większa aktywność programistów . Chociaż można to omówić, rozważam tutaj trzy wskaźniki: aktywność listy mailingowej, częstotliwość zatwierdzania kodu źródłowego i częstotliwość wydawania. Każdy, kto śledzi te dwa projekty, może zobaczyć, że projekt curl ma o wiele wyższe tempo we wszystkich tych obszarach i tak jest od ponad 10 lat. Porównaj na OpenHub
wgetwgetjest tylko wierszem poleceń. Nie ma biblioteki.
Rekurencyjne ! wgetGłówną mocną stroną w porównaniu do curl jest możliwość pobierania rekurencyjnego, a nawet po prostu pobierania wszystkiego, do czego odnosi się zdalny zasób, czy to strona HTML, czy lista katalogów FTP.
Starszy . wgetma ślady z 1995 r., ale curlmożna je prześledzić nie wcześniej niż pod koniec 1996 r.
GPL . wgetwynosi 100% GPL v3. curl jest na licencji MIT.
GNU . wgetjest częścią projektu GNU i wszystkie prawa autorskie są przypisane do FSF. Projekt curl jest całkowicie samodzielny i niezależny, bez organizacji rodzicielskiej, z prawie wszystkimi prawami autorskimi należącymi do Daniela.
wgetnie wymaga żadnych dodatkowych opcji, aby po prostu pobrać zdalny adres URL do pliku lokalnego, podczas gdy curlwymaga -olub -O.
wget obsługuje publiczną listę sufiksów do obsługi domen plików cookie, curl nie.
wget obsługuje tylko GnuTLS lub OpenSSL do obsługi SSL / TLS
wget obsługuje tylko uwierzytelnianie podstawowe jako jedyny typ uwierzytelniania przez proxy HTTP
wget nie obsługuje SOCKS
Jego zdolność do odzyskiwania po przedwcześnie zepsutym transferze i kontynuowaniu pobierania nie ma odpowiednika w zwijaniu.
wget można wpisać tylko lewą ręką na klawiaturze qwerty!
curl -C -nadal nie działa zepsute pobieranie?
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.
Istnieje wiele narzędzi, które mogą pobrać jak curl, snarf, wget, pavuk, fget, fetch, lftp, aria2, HTTrackitd. Użyj go w zależności od zapotrzebowania i które posiadają chcesz używać wraz z pobraniem. Sprawdź tabelę funkcji i użyj odpowiednio.
Loki:
Wget:
Ważne zasoby, aby uzyskać więcej informacji:
Oto dobre wyjaśnienie curl vs Wget .
Tabela funkcji: Porównaj funkcje cURL z innymi narzędziami do pobierania
Szczegółowo obsługiwane funkcje zwijania: Funkcje - co może zwijać
Szczegółowy opis funkcji obsługiwanych przez wget : funkcje wget
Mają wiele wspólnych funkcji, ale curlma więcej opcji. Na wgetto może czasami być wystarczające, aby kartkować man wget, ale curlmuszę się uczyć tej strony internetowej w przeglądarce. Wierzę, że wszystko, co może zrobić Twoja przeglądarka, curlmoże również.
Jest jeszcze jedna różnica między wget a curl, która moim zdaniem jest znacząca.
Wget to samodzielne narzędzie wiersza poleceń, przeznaczone przede wszystkim do szybkiego i prostego pobierania treści internetowych.
Z drugiej strony Curl jest w zasadzie terminalem dla potężnej biblioteki libcurl. Libcurl zapewnia bardzo potężny zestaw narzędzi do pracy z adresami URL we wszystkich ich formach i smakach, i jest dostępny dla prawie wszystkich języków i platform. Curl w zasadzie daje możliwość korzystania z tej biblioteki w skryptach powłoki.