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 schreiben
  • curl -X POST -d '{"name":"Test"}' -H 'Content-Type: application/json' https://api.example.com/items — JSON per POST senden
  • curl -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 begrenzen
  • wget -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.