curl und wget sind die beiden Standardwerkzeuge der Kommandozeile, um Daten über HTTP, HTTPS, FTP und weitere Protokolle zu übertragen. curl eignet sich besonders für API-Tests, wget für robuste Downloads.
curl: Flexible HTTP-Anfragen
curl https://api.example.com/v1/daten
Gibt den Antwort-Inhalt direkt auf der Standardausgabe aus — ideal, um APIs auszuprobieren oder Webseiten-Quelltext anzusehen.
curl -I https://example.com— nur die HTTP-Header anzeigen (Status, Server, Caching)curl -L https://example.com— Redirects verfolgen (z.B. HTTP → HTTPS)curl -o datei.html https://example.com— Antwort in eine Datei schreibencurl -X POST -d '{"name":"Test"}' -H 'Content-Type: application/json' https://api.example.com/items— JSON per POST sendencurl -u benutzer:passwort https://example.com/geschuetzt— HTTP-Basic-Auth
wget: Downloads und Spiegel
wget https://example.com/datei.tar.gz
wget ist auf das Herunterladen spezialisiert und übersteht Verbindungsabbrüche besser als curl.
wget -c https://example.com/gross.tgz— abgebrochenen Download fortsetzen (continue)wget -r -l 2 https://example.com— rekursiv spiegeln bis Tiefe 2 (-l= level)wget --limit-rate=500k https://example.com/video.mp4— Bandbreite begrenzenwget -q https://example.com— still, ohne Fortschrittsausgabe (für Skripte)
Wann nehme ich was?
curl für API-Aufrufe, Header-Inspektion und POST-Anfragen (Ausgabe auf stdout, unterstützt fast jedes Protokoll und Methoden). wget für große oder viele Downloads und Spiegel, weil es rekursiv, fortsetzbar und mit Bandbreitenlimit arbeitet. Für die Praxis: In Skripten mit curl -fsSL prüfen Sie mit -f, dass HTTP-Fehler den Exit-Code setzen (fehlgeschlagen = Exit 22).
Verwandte Grundlagen: grep: Muster in Dateien finden und ssh, scp und rsync.