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 cURLsudo apt-get installkędzior
# zainstaluj wget
sudo apt-get install wget
Łuk / Manjaro:
# zainstaluj cURLsudoPacman-Skędzior
# zainstaluj wget
sudoPacman-S wget
REHL/CentOS/Fedora:
# zainstaluj cURLsudo 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.htmlzwijanie 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.zstwget --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.