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

What Is Difference Between Wget Vs Curl



Często musimy pobierać pliki ze zdalnych serwerów na nasz lokalny komputer. Na pulpicie graficznym możemy skorzystać z przeglądarki GUI i kliknąć przycisk pobierania. Jednak na terminalu musimy użyć narzędzi opracowanych dla terminala. Podczas pobierania plików z terminala często pojawiają się cztery narzędzia: kędzior , ramię , wget , oraz aria2 . Chociaż axel i aria2 mogą nie być dobrze znane, większość użytkowników terminali zna curl i wget.

W tym samouczku przyjrzymy się curl i wget, jak zacząć i co najważniejsze, różnicom między nimi.







Co to jest cURL?

cURL to bezpłatne narzędzie wiersza poleceń o otwartym kodzie źródłowym, które umożliwia użytkownikom przesyłanie danych z jednej zdalnej maszyny na drugą przy minimalnej interakcji użytkownika lub bez niej. Użycie CURL jest powszechne w urządzeniach takich jak routery, drukarki, telefony, tablety, odtwarzacze multimedialne i inne.



Obsługuje pobieranie i przesyłanie za pomocą protokołów takich jak HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, TELNET, POP3, GOPHER i wiele, wiele innych.



cURL zapewnia również serwery proxy, transfery wznawiania, uwierzytelnianie użytkowników, certyfikaty SSL i wiele więcej.





Co to jest wget?

GNU Wget, powszechnie nazywany wget, to darmowe narzędzie wiersza poleceń do przesyłania plików za pomocą HTTP/HTTPS, FTP i FTPS. Zapewnia takie funkcje, jak rekursywne pobieranie, kontrola przepustowości, wznawianie przerwanych transferów, pobieranie w tle, rekurencyjne pliki i katalogi lustrzane oraz wiele innych.

Jak zainstalować cURL i Wget?

cURL i wget to popularne narzędzia łatwo dostępne w głównych dystrybucjach Linuksa; jeśli nie masz zainstalowanego żadnego narzędzia, użyj poniższych poleceń, aby zainstalować:



Debian/Ubuntu:

# zainstaluj cURL

sudo apt-get installkędzior

# zainstaluj wget

sudo apt-get install wget

Łuk / Manjaro:

# zainstaluj cURL

sudoPacman-Skędzior

# zainstaluj wget

sudoPacman-S wget

REHL/CentOS/Fedora:

# zainstaluj cURL

sudo mniam instalacjakędzior

sudodnfzainstalowaćkędzior

# zainstaluj wget

sudo mniam instalacja wget

sudodnfzainstalować wget

Jak używać cURL i Wget (przykładowe przypadki użycia)?

Aby upewnić się, że rozumiesz podobieństwa i różnice między cURL a wget, dobrze jest spojrzeć na kilka przykładów:

Protokoły HTTP/HTTPS:

Zarówno cURL, jak i wget obsługują protokoły HTTP i HTTPS. Dlatego, jeśli pobierzemy stronę internetową, taką jak linuxhint.com:

zwijanie https://linuxhint.pl-lublinuxhint.html

zwijanie https://linuxhint.pl-lublinuxhint.html

%Całkowity%Otrzymane%Xferd Średnia prędkość Czas Czas Czas Prąd

Pobierz Prześlij Całkowite wydane pozostałe prędkości

100256 tys0256 tys0 0166 tys0-: -: -00:00:01 --:--:-- 166k

Domyślnie cURL drukuje zawartość zasobu sieciowego w terminalu. Używamy flagi -o, aby przekierować wyjście do pliku.

Następujące zasady dotyczą wget:

wgethttps://linuxhint.pl

-2021-06-2005:09:Cztery pięć- https://linuxhint.pl/

Rozwiązywanie linuxhint.com(linuxhint.pl)... 104.21.58.234, 172.67.209.252,2606:4700:3033::6815:3aea, ...

Łączenie z linuxhint.com(linuxhint.pl)|104.21.58.234|:443... podłączony.

Wysłano żądanie HTTP, czekam na odpowiedź...200ok

Długość: nieokreślona[tekst/html]

Zapis do: ‘index.html’

index.html

[ <=> ]256,25 tys. 506 KB/sw0,5s

2021-06-2005:09:46 (506KB/s)- „indeks.html” zapisany[262396]

Z drugiej strony Wget zapisuje żądany zasób do pliku.

Warto zauważyć, że oba narzędzia pobierają zasób. Szczegóły ls dwóch plików pokazują oba rozmiary plików.

$ls -tenindex.html linuxhint.html

-rw-rw-r-- 1linuxhint linuxhint262396Czerwiec19 piętnaście:pięćdziesiątindex.html

-rw-rw-r-- 1linuxhint linuxhint262396Czerwiec2005:07 linuxhint.html

Protokół FTP:

Zarówno cURL, jak i wget obsługują pobieranie przez protokoły FTP. Jednak cURL obsługuje przesyłanie na ftp.

Użyj poniższego polecenia, aby pobrać pliki z serwera FTP za pomocą wget:

wget --użytkownik= debian--hasło= 'debian' ftp://192.168.0.112/backup.zst

wget --użytkownik= debian--hasło='debian'FTP://192.168.0.112/backup.zst

-2021-06-2005:29: 06-- ftp://192.168.0.112/backup.zst

=>„kopia zapasowa.zst”

Łączenie z 192.168.0.112:dwadzieścia jeden... podłączony.

Logowaniew jakdebian ... Zalogowanyw!

==>SYST ... gotowe. ==>PWD ... gotowe.

==>TYP I ... gotowe. ==>CWD nie jest potrzebne.

==>SIZE backup.zst ... gotowe.

==>PASV ... gotowe. ==>RETR backup.zst ... gotowe.

backup.zst

[ <=> ] 0--.- KB/sw0s

2021-06-2005:29: 06(0,00b/s)- zapisano „backup.zst”[0]

Używając curl, dodaj-uflaga jako:

kędzior-udebian:debian 'ftp://192.168.0.112/backup.zst”-lubbackup.zst

kędzior-udebian: debian'ftp://192.168.0.112/backup.zst' -lubbackup.zst

%Całkowity%Otrzymane%Xferd Średnia prędkość Czas Czas Czas Prąd

Pobierz Prześlij Całkowite wydane pozostałe prędkości

0 0 0 0 0 0 0 0-: -: - -: -: - -: -: -0

Aby przesłaćplikdoftpz curl używamy-Topcja jako:

kędzior-udebian: debian-Tftp backup1.zst://192.168.0.112/ftp/

Upewnij się, że katalog istnieje, a użytkownik ma do niego uprawnienia do zapisu.

NOTATKA: Chociaż cURL obsługuje szeroką gamę protokołów, nie zapewnia rekursywnego pobierania. Z drugiej strony Wget obsługuje pobieranie rekurencyjne przy użyciu opcji –recursive, ponieważ taką funkcjonalność oferują protokoły HTTP/HTTPS i FTP/FTPS.

Podobieństwa między wget a cURL

Teraz wisienka na torcie:

  • Oba narzędzia obsługują standardowe protokoły, takie jak HTTP, HTTPS, FTP, FTPS.
  • Oba narzędzia pobierają pliki z Internetu.
  • Oba narzędzia obsługują pliki cookie HTTP.
  • Oba narzędzia obsługują wyjście do pliku.
  • Zarówno darmowe, jak i aktywnie rozwijane narzędzia.
  • Oba narzędzia obsługują przesyłanie CV.
  • Oba narzędzia obsługują HTTP POST.

Różnice między wget i cURL

Oto niektóre różnice między curl a wget:

  • Wget to proste narzędzie do przesyłania, podczas gdy curl oferuje o wiele więcej.
  • Curl udostępnia bibliotekę libcurl, którą można rozszerzyć do aplikacji z graficznym interfejsem użytkownika. Z drugiej strony Wget to proste narzędzie wiersza poleceń.
  • Wget obsługuje mniej protokołów w porównaniu z cURL.
  • Pobieranie rekurencyjne nie jest obsługiwane w curl.
  • Wget jest natywnie dostępny w systemach Linux, podczas gdy cURL jest łatwo dostępny w systemach Windows.
  • cURL obsługuje wiele równoległych transferów.
  • cURL wykonuje dekompresje HTTP zakodowane metodą Transfer-Encoded, podczas gdy wget tego nie robi.
  • cURL obsługuje dwukierunkowy HTTP, podczas gdy wget oferuje zwykły POST HTTP.
  • cURL obsługuje więcej metod uwierzytelniania HTTP w porównaniu z wget.
  • Wget nie obsługuje SOCKS.
  • Wget wymaga zainstalowania gnulib.
  • W przeciwieństwie do curl, funkcje takie jak pliki cookie, znaczniki czasu i przekierowania follow są domyślnie włączone w wget. cURL wymaga jawnego określenia każdego.

Wniosek

Ten samouczek skupiał się na podobieństwach i różnicach między cURL. Chociaż może się wydawać, że cURL jest lepszym wyborem, istnieją przypadki, w których najlepszym wyborem jest wget.

Radzę ci wybrać to, co działa dla ciebie.