cURL und wget unter Linux: Was ist der Unterschied?

cURL und wget unter Linux: Was ist der Unterschied?

Wenn Sie eine Gruppe von Linux-Benutzern fragen, was sie zum Herunterladen von Dateien verwenden, werden einige antworten wgetund andere werden sagen cURL. Was ist der Unterschied und ist einer besser als der andere?

Alles begann mit der Verbindung

Regierungsforscher begannen bereits in den 1960er Jahren, verschiedene Netzwerke miteinander zu verbinden, was zu miteinander verbundenen Netzwerken führte. Aber die Geburt des Internets, wie wir es kennen, war am 1. Januar 1983, als das TCP/IP-Protokoll implementiert wurde. Es war das fehlende Glied. Dadurch konnten unterschiedliche Computer und Netzwerke über einen gemeinsamen Standard kommunizieren.

1991 veröffentlichte  CERN  seine Software für das World Wide Web, die sie mehrere Jahre lang intern nutzten. Das Interesse an dieser visuellen Überlagerung für das Internet war sofort groß und weit verbreitet. Ende 1994 gab es  10.000 Webserver und 10 Millionen Benutzer .

Diese beiden Meilensteine ​​– das Internet und das World Wide Web – repräsentieren sehr unterschiedliche Seiten der Konnektivität. Aber sie teilen auch viele der gleichen Eigenschaften.

Kommunikation bedeutet genau das. Sie stellen eine Verbindung zu einem entfernten Gerät her, z. B. einem Server. Und Sie verbinden sich damit, weil es etwas enthält, das Sie brauchen oder wollen. Aber wie bringt man diese remote gehostete Ressource über die Linux-Befehlszeile auf den lokalen Computer?

1996 erschienen zwei Dienstprogramme, mit denen Sie entfernt gehostete Ressourcen herunterladen konnten. Dies ist wgetdie, die im Januar herauskam, und cURLdie im Dezember herauskam. Beide funktionieren auf der Linux-Befehlszeile. Beide stellen eine Verbindung zu Remote-Servern her und rufen Daten für Sie ab.

Aber es ist nicht nur der übliche Fall, dass Linux zwei oder mehr Tools bereitstellt, um die gleiche Aufgabe zu erledigen. Diese Dienstprogramme haben unterschiedliche Zwecke und unterschiedliche Spezialisierungen. Das Problem ist, dass sie ähnlich genug sind, um Verwirrung darüber zu stiften, welches man wann verwenden soll.

Stellen Sie sich zwei Chirurgen vor. Wahrscheinlich möchten Sie weder von einem Augenchirurgen eine Herz-Bypass-Operation noch von einem Herzchirurgen eine Katarakt-Operation bei Ihnen durchführen lassen. Ja, sie sind beide hochqualifizierte Mediziner, aber das bedeutet nicht, dass sie sich gegenseitig ersetzen können.

Dasselbe gilt für wgetund cURL.

Unterschiedliche Zwecke, unterschiedliche Funktionen, einige überschneiden sich

Der Buchstabe „w“ im wgetBefehl gibt seinen Zweck an. Sein Hauptzweck ist das Laden von Webseiten oder sogar ganzen Websites. Seine manSeite beschreibt es als ein Dienstprogramm zum Herunterladen von Dateien aus dem Internet mit den Protokollen HTTP, HTTPS und FTP.

Im Gegenteil, cURLes funktioniert mit 26 Protokollen, darunter SCP, SFTP und SMSB sowie HTTPS. Auf seiner manSeite heißt es, es sei ein Tool zum Übertragen von Daten zu oder von einem Server. Es ist nicht speziell für die Arbeit mit Websites konzipiert. Es wurde entwickelt, um mit entfernten Servern über eines der vielen unterstützten Internetprotokolle zu kommunizieren.

Es ist also wgetüberwiegend website-orientiert, cURLwährend es auf einer tieferen Ebene funktioniert, auf der Ebene des einfachen Internets.

wgetkann Webseiten abrufen und rekursiv durch ganze Verzeichnisstrukturen auf Webservern navigieren, um ganze Websites herunterzuladen. Es kann auch die Links auf den abgerufenen Seiten so einstellen, dass sie korrekt auf Webseiten auf Ihrem lokalen Computer zeigen und nicht auf ihre Gegenstücke auf einem entfernten Webserver.

cURLerlaubt Ihnen, mit einem entfernten Server zu interagieren. Es kann sowohl Dateien herunterladen als auch extrahieren. cURL funktioniert mit SOCKS4- und SOCKS5-Proxys und HTTPS zu Proxys. Es unterstützt die automatische Dekomprimierung komprimierter Dateien in den Formaten GZIP, BROTLI und ZSTD. cURLermöglicht Ihnen auch, mehrere Übertragungen parallel herunterzuladen.

Die Überschneidung zwischen den beiden besteht darin, dass Sie mit wgetbeiden cURLWebseiten abrufen und FTP-Server verwenden können.

Dies ist nur eine grobe Metrik, aber Sie können sich eine Vorstellung von den relativen Funktionssätzen der beiden Tools machen, indem Sie sich die Länge ihrer manSeiten ansehen. Auf unserer Testmaschine ist die Manpage für wget1433 Zeilen lang. Die Seite manfür cURList satte 5296 Zeilen.

Ein kurzer Blick auf wget

Da wgetes Teil des GNU -Projekts ist, sollten Sie es auf allen Linux-Distributionen vorinstalliert finden. Es ist einfach zu verwenden, insbesondere für die häufigsten Anwendungen: Herunterladen von Webseiten oder Dateien.

Verwenden Sie einfach wgetden Befehl mit der URL der Webseite oder Remote-Datei.

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

Die Datei wird extrahiert und unter dem ursprünglichen Namen auf Ihrem Computer gespeichert.

Um die Datei unter einem neuen Namen zu speichern, verwenden Sie die -OOption (Ausgabedokument).

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

Die resultierende Datei wird unter dem von uns gewählten Namen gespeichert.

Verwenden Sie diese -OOption nicht, wenn Sie nach Websites suchen. Wenn Sie dies tun, werden alle extrahierten Dateien zu einer hinzugefügt.

Um die gesamte Website zu erhalten, verwenden Sie den -mParameter (mirror) und die URL der Homepage der Website. Sie können auch --page-requisitessicherstellen, dass alle unterstützenden Dateien, die zum korrekten Anzeigen von Webseiten erforderlich sind, ebenfalls geladen werden. Diese --convert-linksEinstellung konfiguriert die Links in der resultierenden Datei so, dass sie auf die richtigen Ziele auf Ihrem lokalen Computer zeigen und nicht auf externe Speicherorte auf der Website.

Ein kurzer Blick auf cURL

cURList ein unabhängiges Open-Source-Projekt. Es ist auf Manjaro 21 und Fedora 36 vorinstalliert, musste aber auf Ubuntu 21.04 installiert werden.

Dies ist der Befehl zum Installieren von cURL unter Ubuntu.

sudo apt install curl

Um dieselbe Datei wie mit zu laden wgetund unter demselben Namen zu speichern, müssen wir diesen Befehl verwenden. Beachten Sie, dass die -oOption (exit) in Kleinbuchstaben mit geschrieben wird cURL.

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

Die Datei wurde für uns heruntergeladen. Während des Downloads wird ein ASCII-Fortschrittsbalken angezeigt.

Um eine Verbindung zu einem FTP-Server herzustellen und eine Datei hochzuladen, verwenden Sie die -uOption (Benutzer) und geben Sie ein Benutzername/Passwort-Paar wie folgt an:

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

Dadurch wird die Datei vom Test-FTP-Server heruntergeladen und umbenannt.

Es gibt keinen besseren

Es ist unmöglich zu antworten „Welches soll ich verwenden“ ohne zu fragen „Was versuchen Sie zu tun?“

Sobald Sie verstehen, was wgetund was cURLzu tun ist, werden Sie verstehen, dass sie nicht konkurrieren. Sie erfüllen nicht die gleiche Anforderung und versuchen nicht, die gleiche Funktionalität bereitzustellen.

Beim Laden von Webseiten und Websites liegt wgetdie Exzellenz. Wenn Sie das tun, verwenden Sie wget. Für alles andere – wie das Herunterladen oder Verwenden eines der vielen anderen Protokolle – verwenden Sie cURL.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert