cURL vs. wget w Linuksie: jaka jest różnica?

Opublikowany: 2022-07-13
Laptop z systemem Linux wyświetlający monit o bash
fatmawati achmad zaenuri/Shutterstock.com

Jeśli zapytasz grupę użytkowników Linuksa, z czym pobierają pliki, niektórzy powiedzą wget , a inni cURL . Jaka jest różnica i czy jedno jest lepsze od drugiego?

Zaczęło się od łączności

Naukowcy rządowi zaczęli łączyć ze sobą różne sieci już w latach 60. XX wieku, dając początek połączonym sieciom. Ale narodziny Internetu, jaki znamy, miały miejsce 1 stycznia 1983 roku, kiedy został zaimplementowany protokół TCP/IP. To było brakujące ogniwo. Umożliwiło to różnym komputerom i sieciom komunikowanie się przy użyciu wspólnego standardu.

W 1991 r. CERN wydał oprogramowanie World Wide Web, którego używali wewnętrznie od kilku lat. Zainteresowanie tą nakładką wizualną do Internetu było natychmiastowe i powszechne. Pod koniec 1994 roku istniało 10 000 serwerów internetowych i 10 milionów użytkowników.

Jak działa Internet?
POWIĄZANE Jak działa Internet?

Te dwa kamienie milowe — internet i sieć — reprezentują bardzo różne oblicza łączności. Ale mają też wiele takich samych funkcji.

Łączność oznacza właśnie to. Łączysz się z jakimś zdalnym urządzeniem, takim jak serwer. I łączysz się z nim, ponieważ jest na nim coś, czego potrzebujesz lub chcesz. Ale jak pobrać zdalnie hostowany zasób na lokalny komputer z wiersza poleceń systemu Linux?

W 1996 roku narodziły się dwa narzędzia, które umożliwiają pobieranie zdalnie hostowanych zasobów. Są to wget , który został wydany w styczniu i cURL , który został wydany w grudniu. Oba działają w wierszu poleceń Linuksa. Obaj łączą się ze zdalnymi serwerami i oboje pobierają dla Ciebie rzeczy.

Ale to nie jest zwykły przypadek Linuksa dostarczającego dwa lub więcej narzędzi do wykonania tej samej pracy. Te narzędzia mają różne cele i różne specjalizacje. Problem polega na tym, że są na tyle podobne, że powodują zamieszanie co do tego, którego użyć i kiedy.

Rozważ dwóch chirurgów. Prawdopodobnie nie chcesz, aby chirurg okulista wykonał operację pomostowania aortalno-wieńcowego, ani nie chcesz, aby chirurg serca wykonał operację zaćmy. Tak, obaj są wysoko wykwalifikowanymi lekarzami, ale to nie znaczy, że zastępują siebie nawzajem.

To samo dotyczy wget i cURL .

Różne cele, różne funkcje, niektóre nakładają się

„w” w poleceniu wget jest wskaźnikiem jego zamierzonego celu. Jego głównym celem jest pobieranie stron internetowych, a nawet całych witryn. Jego strona podręcznika opisuje man jako narzędzie do pobierania plików z sieci przy użyciu protokołów HTTP, HTTPS i FTP.

Natomiast cURL działa z 26 protokołami, w tym SCP, SFTP i SMSB oraz HTTPS. Jego strona man mówi, że jest to narzędzie do przesyłania danych do lub z serwera. W szczególności nie jest przystosowany do pracy z witrynami internetowymi. Jest przeznaczony do interakcji ze zdalnymi serwerami przy użyciu dowolnego z wielu obsługiwanych protokołów internetowych.

Tak więc wget jest głównie zorientowany na stronę internetową, podczas gdy cURL jest czymś, co działa na głębszym poziomie, na zwykłym, waniliowym poziomie Internetu.

wget jest w stanie pobierać strony internetowe i może rekursywnie nawigować po całej strukturze katalogów na serwerach internetowych w celu pobrania całych witryn internetowych. Jest również w stanie dostosować łącza na pobranych stronach tak, aby poprawnie wskazywały strony internetowe na komputerze lokalnym, a nie ich odpowiedniki na zdalnym serwerze internetowym.

cURL pozwala na interakcję ze zdalnym serwerem. Może przesyłać pliki, a także je pobierać. cURL współpracuje z serwerami proxy SOCKS4 i SOCKS5 oraz HTTPS z serwerem proxy. Obsługuje automatyczną dekompresję skompresowanych plików w formatach GZIP, BROTLI i ZSTD. cURL umożliwia także równoległe pobieranie wielu transferów.

Ich nakładanie polega na tym, że zarówno wget , jak i cURL umożliwiają pobieranie stron internetowych i korzystanie z serwerów FTP.

To tylko przybliżona metryka, ale możesz poznać względne zestawy funkcji tych dwóch narzędzi, patrząc na długość ich stron man . Na naszej maszynie testowej strona podręcznika dla wget ma 1433 wierszy. Strona man dla cURL ma aż 5296 linijek.

Szybki podgląd wget

Ponieważ wget jest częścią projektu GNU, powinieneś znaleźć go preinstalowany we wszystkich dystrybucjach Linuksa. Korzystanie z niego jest proste, szczególnie w przypadku jego najczęstszych zastosowań: pobierania stron internetowych lub plików.

Wystarczy użyć polecenia wget z adresem URL strony internetowej lub pliku zdalnego.

 wget https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc 

Pobieranie dokumentu Word za pomocą wget

Plik jest pobierany i zapisywany na komputerze pod oryginalną nazwą.

Dane wyjściowe polecenia wget pobierającego dokument Word

Aby plik został zapisany pod nową nazwą, użyj opcji -O (dokument wyjściowy).

 wget -O test-pliku-slowa.doc https://przyklady-pliku.com/wp-content/uploads/2017/02/przyklad-pliku_100kB.doc 

Pobieranie pliku za pomocą wget i zapisywanie go pod nową nazwą

Pobrany plik jest zapisywany pod wybraną przez nas nazwą.

Nazwa pobranego pliku zostaje zmieniona na nazwę podaną w wierszu poleceń

Nie używaj opcji -O podczas pobierania stron internetowych. Jeśli to zrobisz, wszystkie pobrane pliki zostaną dołączone do jednego.

Aby pobrać całą witrynę, użyj opcji -m (mirror) i adresu URL strony głównej witryny. Warto również użyć --page-requisites aby upewnić się, że wszystkie pliki pomocnicze wymagane do prawidłowego renderowania stron internetowych również zostały pobrane. Opcja --convert-links dostosowuje łącza w pobranym pliku tak, aby wskazywały właściwe miejsca docelowe na komputerze lokalnym, a nie zewnętrzne lokalizacje w witrynie.

POWIĄZANE: Jak korzystać z wget, najlepszego narzędzia do pobierania wiersza poleceń

Szybki podgląd na cURL

cURL to niezależny projekt open source. Jest preinstalowany na Manjaro 21 i Fedorze 36, ale musiał być zainstalowany na Ubuntu 21.04.

To jest polecenie instalacji cURL na Ubuntu.

 sudo apt zainstaluj curl 

Instalowanie cURL na Ubuntu

Aby pobrać ten sam plik, co w wget , i zapisać go pod tą samą nazwą, musimy użyć tego polecenia. Zauważ, że opcja -o (wyjście) jest małymi literami z cURL .

 curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc 

Pobieranie pliku za pomocą cURL i zapisywanie go pod nową nazwą

Plik jest dla nas pobierany. Podczas pobierania wyświetlany jest pasek postępu ASCII.

Plik jest pobierany i zapisywany pod nazwą określoną w wierszu poleceń

Aby połączyć się z serwerem FTP i pobrać plik, użyj opcji -u (użytkownik) i podaj parę nazwy użytkownika i hasła, w następujący sposób:

 curl -o test.png -u demo:hasło ftp://test.rebex.net/pub/example/KeyGenerator.png 

Pobieranie pliku z serwera FTP za pomocą cURL

Spowoduje to pobranie i zmianę nazwy pliku z testowego serwera FTP.

Pomyślne pobranie z serwera FTP za pomocą cURL

POWIĄZANE: Jak używać curl do pobierania plików z wiersza poleceń systemu Linux

Nie ma najlepszego

Nie da się odpowiedzieć „Którego powinienem użyć” bez pytania „Co próbujesz zrobić?”

Gdy zrozumiesz, co robią wget i cURL , zdasz sobie sprawę, że nie konkurują ze sobą. Nie spełniają tych samych wymagań i nie starają się zapewnić tej samej funkcjonalności.

Pobieranie stron internetowych i witryn internetowych to wget . Jeśli to właśnie robisz, użyj wget . Do czegokolwiek innego — na przykład przesyłania lub korzystania z wielu innych protokołów — użyj cURL .