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

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

Jeśli zapytasz grupę użytkowników Linuksa, czego używają do pobierania plików, niektórzy powiedzą, wgeta inni powiedzą cURL. Jaka jest różnica i czy jedno jest lepsze od drugiego?

Wszystko zaczęło się od połączenia

Naukowcy rządowi zaczęli łączyć ze sobą różne sieci już w latach 60. XX wieku, co zaowocowało połączonymi sieciami. Ale narodziny Internetu, jaki znamy, miały miejsce 1 stycznia 1983 roku, kiedy wdrożono 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 roku  CERN  wydał swoje oprogramowanie dla sieci WWW, z którego korzystali wewnętrznie przez kilka lat. Zainteresowanie tą wizualną nakładką do sieci było natychmiastowe i powszechne. Pod koniec 1994 roku istniało  10 000 serwerów internetowych i 10 milionów użytkowników .

Te dwa kamienie milowe – Internet i World Wide Web – reprezentują bardzo różne strony łączności. Ale mają też wiele takich samych funkcji.

Komunikacja oznacza właśnie to. Łączysz się z jakimś zdalnym urządzeniem, takim jak serwer. I łączysz się z nim, ponieważ ma na sobie coś, czego potrzebujesz lub chcesz. Ale jak uzyskać ten zdalnie hostowany zasób na maszynę lokalną z wiersza poleceń systemu Linux?

W 1996 roku pojawiły się dwa narzędzia, które pozwalały pobierać zdalnie hostowane zasoby. To ta wget, która ukazała się w styczniu, a cURLktóra ukazała się w grudniu. Oba działają w wierszu poleceń systemu Linux. Obydwa łączą się ze zdalnymi serwerami i oba pobierają dla Ciebie dane.

Ale to nie tylko zwykły przypadek, że Linux dostarcza 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ł na tobie operację pomostowania aortalno-wieńcowego, ani nie chcesz, aby kardiochirurg wykonał na tobie operację zaćmy. Tak, obaj są wysoko wykwalifikowanymi lekarzami, ale to nie znaczy, że mogą się nawzajem zastępować.

To samo dotyczy wgeti cURL.

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

Litera „w” w wgetpoleceniu wskazuje na jego cel. Jego głównym celem jest ładowanie stron internetowych lub nawet całych witryn internetowych. Jego manstrona opisuje go jako narzędzie do pobierania plików z Internetu za pomocą protokołów HTTP, HTTPS i FTP.

Wręcz przeciwnie, cURLdziała z 26 protokołami, w tym SCP, SFTP i SMSB, a także HTTPS. Jego manstrona mówi, że jest to narzędzie do przesyłania danych do lub z serwera. Nie jest specjalnie zaprojektowany do pracy ze stronami internetowymi. Jest przeznaczony do komunikacji ze zdalnymi serwerami przy użyciu dowolnego z wielu obsługiwanych protokołów internetowych.

Jest więc wgetgłównie zorientowany na stronę internetową, cURLpodczas gdy działa na głębszym poziomie, na poziomie zwykłego waniliowego Internetu.

wgetmoże pobierać strony internetowe i może rekursywnie nawigować po całych strukturach katalogów na serwerach internetowych w celu pobrania całych witryn internetowych. Może również ustawić łącza na pobranych stronach, aby poprawnie wskazywały strony internetowe na komputerze lokalnym, a nie ich odpowiedniki na zdalnym serwerze internetowym.

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

Nakładanie się tych dwóch polega na tym, że wgetoba cURLpozwalają uzyskać strony internetowe i korzystać z serwerów FTP.

To tylko przybliżona metryka, ale możesz uzyskać pewne pojęcie o względnych zestawach funkcji tych dwóch narzędzi, patrząc na długość ich manstron. Na naszej maszynie testowej strona podręcznika wgetużytkownika ma 1433 wierszy. Strona ma mancURL5296 linijek.

Szybkie spojrzenie na wget

Ponieważ wgetjest to część projektu GNU , powinieneś znaleźć go preinstalowany we wszystkich dystrybucjach Linuksa. Jest łatwy w użyciu, zwłaszcza do najczęstszych zastosowań: pobierania stron internetowych lub plików.

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

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

Plik zostanie wyodrębniony i zapisany na komputerze pod oryginalną nazwą.

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

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

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

Nie używaj tej -Oopcji podczas wyszukiwania stron internetowych. Jeśli to zrobisz, wszystkie wyodrębnione pliki zostaną dodane do jednego.

Aby uzyskać całą witrynę, użyj parametru -m(mirror) i adresu URL strony głównej witryny. Możesz również użyć --page-requisites, aby upewnić się, że wszystkie pliki pomocnicze wymagane do prawidłowego wyświetlania stron internetowych są również załadowane. To --convert-linksustawienie konfiguruje łącza w pliku wynikowym tak, aby wskazywały prawidłowe miejsca docelowe na komputerze lokalnym, a nie zewnętrzne lokalizacje w witrynie internetowej.

Szybkie spojrzenie na cURL

cURLjest niezależnym projektem open source. Jest preinstalowany na Manjaro 21 i Fedorze 36, ale musi być zainstalowany na Ubuntu 21.04.

To jest polecenie instalacji cURL na Ubuntu.

sudo apt install curl

Aby załadować ten sam plik co w wgeti zapisać go pod tą samą nazwą, musimy użyć tego polecenia. Zauważ, że -oopcja (exit) jest zapisywana małymi literami z cURL.

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

Plik został dla nas pobrany. Podczas pobierania wyświetlany jest pasek postępu ASCII.

Aby połączyć się z serwerem FTP i przesłać plik, użyj opcji -u(użytkownik) i określ parę nazwa użytkownika/hasło, w następujący sposób:

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

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

Nie ma lepszego

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

Kiedy zrozumiesz, co wgeti co cURLrobić, zrozumiesz, że nie konkurują. Nie spełniają tych samych wymagań i nie starają się zapewnić tej samej funkcjonalności.

Wczytywanie stron internetowych i witryn internetowych to wgetpodstawa doskonałości. Jeśli to właśnie robisz, użyj wget. Do wszystkiego innego — na przykład pobierania lub korzystania z wielu innych protokołów — używaj cURL.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *