Linux & Co.MeinungWindows

cURL vs. Wget – die Einsteigerantwort ;)

Zwei der populärsten Kommandozeilen-Tools und die Frage nach dem kleinen Unterschied ...

Die Frage „cURL oder Wget?“ scheint der Google-Suche nach durchaus häufiger vorzukommen. Und auch bei Stackexchange scheint sie ziemlich viel Aufmerksamkeit zu bekommen. Die vielleicht beste Antwort gibt, nicht wirklich überraschend, cURL-Macher Daniel Stenberg selbst, da gibt es dann auch wenig zu deuteln. Hier gibt es nur die kurze Antwort für Laien, die nichts über Protokolle, Lizenzen, Sockets und Compiler hören wollen. Ein wenig vereinfacht ist es dann freilich ;)

Wget?

Für mich persönlich war es eher neu, dass diese Frage so oft aufkommt – klar, beide fragen Zeugs aus dem Netz ab. Ich habe beide Programme allerdings immer gemäß ihrer vermeintlichen Hauptbestimmungen genutzt und das führt micht zur simplen Antwort: Wget für Downloads, cURL für alle anderen Anfragen an URLs. Aus Sicht eines ganz normalen Nutzers, nicht eines Entwicklers oder Tekkies, erledigen die beiden Kollegen im Grunde sehr unterschiedliche Aufgaben. Wget lädt halt Dateien herunter und zwar besser als cURL : Die Syntax ist simpelst:

wget example.de/datei.zip

Und Wget kann auch rekursiv ganze Verzeichnisstrukturen herunterladen:

wget -r --no-parent 192.168.178.100/bilder

Damit würden dann schlicht alle Dateien im angegebenen Ordner und allen darunter heruntergeladen, samt der Verzeichnisstruktur. Man kommt wirklich lange damit klar, Wget einfach als einen Kommandozeilen-Downloader für HTTP und FTP zu verstehen.

cURL?

cURL hingegen transferiert zwar genauso Daten von und zu einer URL, meist aber nicht im Otto-Normalverbraucher-Verständnis von Download, also dem Runterladen beispielsweise einer Datei foobar.zip. cURL wird in der Regel eher eingesetzt, um ganz allgemein (HTTP-)Anfragen zu senden, zum Beispiel, um den Webseiteninhalt anzuzeigen oder ein Formular auszufüllen. Unsere hauseigene Linux-Hilfe cli.help nutzt cURL etwa, um Hilfe zu Kommandozeilenbefehlen direkt auf der Kommandozeile auszugeben:

curl cli.help/ls

Aber freilich kann cURL „normal“ downloaden:

curl 192.168.178.100/bilder/sonne.png -o sonne.png

Man muss eben noch die Ausgabedatei angeben, ansonsten wird nur auf der Kommandozeile ausgegeben. Das macht es halt umständlicher – minimal, aber wenn cURL nur zwei mal pro Jahr für einen Download verwendet, hat man die Syntax hinten schnell vergessen. Bei Wget wiederum ist das Ausgeben auf der Kommandozeile komplizierter:

wget -O - cli.help/ls

Ansonsten wird cURL vor allem von Entwicklern, Admins und (eher weit) fortgeschrittenen Nutzern verwendet, sei es, um Schnittstellen von Online-Services zu bedienen oder per Webhook Skripte auf Rechnern zu starten.

Allerdings kann cURL nicht nur HTTP (also normale Downloads im Browser) und FTP, sondern noch etliche andere Protokolle nutzen (upps, jetzt kamen doch die Protokolle …). Überhaupt lässt sich mit cURL letztlich mehr anstellen als mit Wget. Auch was reine Datei-Downloads angeht. Außerdem gibt es cURL als Bibliothek, kann also in anderen Programmen genutzt werden …

Fazit

Aber für Linux-Neulinge … Öhm, ganz nebenbei: cURL und Wget mögen Linux-Standard-Tools sein, aber selbstverständlich gibt es beide auch für Windows! Aber wenn Ihr hier gelandet seid, stehen die Chancen gut, dass Ihr just mit Linux angefangen habt ;) Egal, jedenfalls wird es aber hier dann doch wieder technisch und komplex – folgt einfach dem Link oben zu Daniel Stenberg. Oder ruft mal mit wget –help die Hilfe für Wget auf, dann seht Ihr schon, wie sehr hier letztlich vereinfacht wird wenn ich sage: Für Kommandozeilen-Neulinge kann es ganz pragmatisch beim Wget für Standard-Downloads, cURL für alles andere bleiben. Das kann man sich auch gut merken: Das c in cURL steht (unter anderem ;) ) für Client, was durchaus mehr als nur Downloads suggeriert. Und bei Wget spricht das get eine deutliche Sprache.

Beide werden übrigens dieses Jahre 25 Jahre alt, koexistieren und zählen zu den Standard-Werkzeugen – sie haben halt beide ihre Stärken.

Mehr über Kommandozeilenwerkzeuge.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"