Harting Development

cURL für Linux: Befehle, Optionen und Beispiele für effektive Datenübertragung

Lukas Fuchs vor 2 Jahren Netzwerk & Routing 3 Min. Lesezeit

Was ist cURL und wofür wird es verwendet?

cURL, kurz für "Client URL", ist ein leistungsfähiges Befehlszeilenwerkzeug und eine Bibliothek, die für die Übertragung von Daten über verschiedene Protokolle wie HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, LDAPS, POP3, POP3S, IMAP, IMAPS, SMTP, SMTPS, TELNET und FILE entwickelt wurde. Es ist ein wertvolles Werkzeug für Entwickler, Systemadministratoren und alle, die Daten über Netzwerke übertragen müssen.

Funktionen von cURL:

  • Datenübertragung: Senden und Empfangen von Daten über verschiedene Protokolle.
  • Unterstützung für verschiedene Protokolle: Bietet Unterstützung für eine Vielzahl von Übertragungsprotokollen, darunter HTTP, FTP und SMTP.
  • SSL/TLS zur Sicherheit: Sichert Datenübertragungen über SSL/TLS, um Vertraulichkeit und Authentifizierung zu gewährleisten.
  • Fortschrittsanzeige: Zeigt den Fortschritt von Datenübertragungen an.
  • Fehlerbehandlung: Bietet umfassende Fehlerbehandlung, um Probleme bei der Datenübertragung zu identifizieren und zu beheben.
  • Zeitüberschreitung: Ermöglicht das Festlegen von Zeitüberschreitungen für Verbindungs- und Datenübertragungsvorgänge.

Anwendungsfälle von cURL

cURL wird in verschiedenen Anwendungsfällen eingesetzt, darunter:

  • Web Scraping: Extrahieren von Daten von Websites.
  • Download-Manager: Herunterladen von Dateien aus dem Internet.
  • APIs aufrufen: Interagieren mit Webdiensten und APIs.
  • Systemverwaltung: Automatisieren von Verwaltungsaufgaben, wie z. B. das Überwachen von Servern und das Konfigurieren von Geräten.
  • Netzwerkdiagnose: Testen von Netzwerkverbindungen und Fehlerbehebung.

Häufige cURL-Befehle und ihre Verwendung

cURL bietet eine breite Palette von Befehlen, die dir helfen, Daten effektiv zu übertragen. Hier sind einige der häufigsten Befehle und ihre Verwendung:

curl [URL]

Dieser Befehl führt eine einfache HTTP-GET-Anfrage an die angegebene URL aus und gibt die Antwort auf der Konsole aus.

curl [URL] -o [Datei]

Diese Option fordert die angegebene URL an und speichert die Antwort in der angegebenen Datei.

curl -X [Methode] [URL]

Hiermit kannst du andere HTTP-Methoden als GET verwenden. Ersetze [Methode] durch POST, PUT oder DELETE.

curl -d [Daten]

Diese Option sendet die angegebenen Daten als HTTP-Formulardaten.

curl -H [Header]

Diese Option sendet einen benutzerdefinierten HTTP-Header. Du kannst mehrere Header senden, indem du diesen Befehl wiederholst.

curl -A [User-Agent]

Hiermit kannst du den User-Agent deines cURL-Aufrufs anpassen. Dies kann nützlich sein, um die Kompatibilität mit bestimmten Servern oder Proxys zu gewährleisten.

curl -L

Diese Option folgt HTTP-Weiterleitungen.

curl -v

Diese Option aktiviert den ausführlichen Modus, der zusätzliche Informationen zur cURL-Anfrage und -Antwort anzeigt.

curl -k

Diese Option deaktiviert die Überprüfung des SSL-Zertifikats. Verwende sie vorsichtig, da sie deine Anfragen anfällig für Man-in-the-Middle-Angriffe macht.

curl -u [Benutzername:Passwort]

Diese Option sendet HTTP-Basisauthentifizierungsdaten.

Optionen zur Anpassung von cURL-Anfragen

cURL bietet eine Vielzahl von Optionen, um Anfragen an die Anforderungen anzupassen. Mit diesen Optionen kannst du Folgendes erreichen:

HTTP-Header anpassen

Mit der Option -H kannst du benutzerdefinierte HTTP-Header zu deiner Anfrage hinzufügen. Dies ist nützlich für die Authentifizierung, die Angabe von bevorzugten Inhalten oder das Festlegen von Cookies.

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://example.com

Datenübertragung

Für die Datenübertragung bietet cURL mehrere Optionen:

  • -d: Überträgt Daten als HTTP-Daten.
  • --data-binary: Überträgt binäre Daten.
  • --data-urlencode: Codiert Daten für die URL-Übertragung.
  • --form: Überträgt Daten als Formularfelder.

Authentifizierung

cURL unterstützt verschiedene Authentifizierungsmethoden:

  • -u: HTTP-Basisauthentifizierung.
  • --digest: Digest-Authentifizierung.
  • --ntlm: NTLM-Authentifizierung.

Proxy-Einstellungen

Über die Option --proxy kannst du einen HTTP- oder SOCKS-Proxy für deine Anfrage konfigurieren.

curl --proxy http://myproxy.com:8080 https://example.com

Timeout-Einstellungen

Du kannst Timeout-Werte für die Verbindungsaufbauzeit, die Antwortzeit und die Gesamtwartzeit festlegen:

  • -c: Timeout für die Verbindungsaufbauzeit.
  • -m: Timeout für die Antwortzeit.
  • --max-time: Timeout für die Gesamtwartzeit.

Weitere Optionen

Zusätzlich zu den oben genannten Optionen gibt es zahlreiche weitere Optionen, die du zur Feinabstimmung deiner Anfragen verwenden kannst:

  • -v: Aktiviert den ausführlichen Ausgabemodus.
  • -s: Deaktiviert die Standardausgabe.
  • --compressed: Aktiviert die GZIP-Komprimierung.
  • --user-agent: Ändert den User-Agent-Header.

Behandeln von Fehlern und HTTP-Antworten

Beim Senden von cURL-Anfragen kannst du auf verschiedene Arten von Fehlern und HTTP-Antworten stoßen. Es ist wichtig zu verstehen, wie du diese Fehler behandelst, um sicherzustellen, dass deine Datenübertragungen erfolgreich verlaufen und Probleme schnell erkannt werden.

Häufige Fehlertypen

Im Folgenden sind einige der häufigsten Fehlertypen aufgeführt, die bei der Verwendung von cURL auftreten können:

  • Netzwerkfehler: Verbindungsprobleme, Timeouts oder DNS-Auflösungsfehler.
  • HTTP-Statusfehler: Serverfehler (z. B. 500), Weiterleitungsfehler (z. B. 302) oder Autorisierungsfehler (z. B. 401).
  • cURL-Bibliotheksfehler: Fehler, die von der cURL-Bibliothek selbst generiert werden (z. B. ungültige URLs oder fehlende Abhängigkeiten).

Umgang mit Fehlern

Wenn ein Fehler auftritt, kannst du die folgenden Schritte unternehmen:

  • Überprüfe die Fehlermeldungen: Die Fehlermeldung kann dir Hinweise auf die Ursache des Fehlers geben.
  • Überprüfe deine Anfrage: Stelle sicher, dass die URL korrekt ist, die Header richtig gesetzt sind und die Daten ordnungsgemäß formatiert sind.
  • Überprüfe die Serverantworten: Verwende die Option -H oder --header, um die HTTP-Header der Serverantwort anzuzeigen.
  • Verwende die Debugging-Optionen: Die Option -v oder --verbose zeigt detaillierte Informationen über den Übertragungsvorgang an, einschließlich Fehlermeldungen.

Behandeln von HTTP-Antworten

Wenn der Server auf deine Anfrage mit einer HTTP-Antwort antwortet, kannst du die folgenden Schritte unternehmen, um die Antwort zu behandeln:

  • Überprüfe den HTTP-Statuscode: Der Statuscode gibt den Erfolg oder Misserfolg der Anfrage an.
  • Überprüfe die Antwort-Header: Die Antwort-Header enthalten Informationen über den Inhaltstyp, die Codierung und andere Metadaten.
  • Parse die Antwortdaten: Abhängig vom Inhaltstyp kannst du die Antwortdaten mit Tools wie jq oder regulären Ausdrücken parsen.

Automatisierung der Fehlerbehandlung

Um die Fehlerbehandlung zu automatisieren, kannst du folgende Techniken verwenden:

  • cURL-Exit-Codes: cURL gibt Exit-Codes zurück, die den Erfolg oder Misserfolg der Anfrage angeben. Du kannst diese Codes in Skripten verwenden, um auf Fehler zu reagieren.
  • REST-Bibliotheken: Bibliotheken wie requests für Python oder axios für JavaScript bieten Funktionen zur automatischen Fehlerbehandlung und zum Umgang mit HTTP-Antworten.
  • Fehlerbehandlungsskripte: Du kannst benutzerdefinierte Skripte schreiben, um bestimmte Fehler zu erkennen und entsprechende Aktionen auszuführen.

Sichern von Datenübertragungen

Da Datenübertragungen über das Internet anfällig für Abhören und Manipulationen sein können, ist es wichtig, Maßnahmen zur Sicherung deiner Daten zu ergreifen. cURL bietet verschiedene Optionen, um die Sicherheit deiner Datenübertragungen zu gewährleisten:

HTTPS-Unterstützung

cURL unterstützt das HTTPS-Protokoll (Hypertext Transfer Protocol Secure), das Daten mit dem TLS/SSL-Verschlüsselungsprotokoll verschlüsselt. Um eine sichere HTTP-Verbindung herzustellen, verwende die Option -k oder --insecure.

Authentifizierung

cURL ermöglicht die Authentifizierung gegenüber Servern, um den Zugriff auf geschützte Ressourcen zu kontrollieren. Du kannst die folgenden Authentifizierungsmethoden verwenden:

  • Basic Auth: Verwende die Optionen -u oder --user und -p oder --password, um Benutzername und Passwort anzugeben.
  • Digest Auth: Verwende die Optionen -u oder --user und -H oder --header, um die notwendigen Authentifizierungsheader einzurichten.
  • OAuth 2.0: Verwende die Option --oauth2, um OAuth 2.0-Zugriffstoken anzuweisen.

Cookie-Unterstützung

cURL unterstützt die Verwendung von Cookies, kleinen Textdateien, die von Servern zum Speichern von Informationen über Browseraktivitäten gesetzt werden. Dies kann hilfreich sein, um Sitzungen zu verwalten und personalisierte Erlebnisse zu bieten. Um Cookies zu verwalten, verwende die Optionen -b oder --cookie, -c oder --cookie-jar und --cookie-session.

Zertifikatsüberprüfung

cURL überprüft standardmäßig die Gültigkeit von SSL-Zertifikaten, um Man-in-the-Middle-Angriffen vorzubeugen. Um diese Prüfung zu deaktivieren, verwende die Option --insecure. Es wird jedoch dringend empfohlen, dies nur in vertrauenswürdigen Umgebungen zu tun.

Proxys

Wenn du auf das Internet über einen Proxy zugreifst, kannst du die Optionen -x oder --proxy verwenden, um den Proxy-Server anzugeben. Proxy-Server können für verschiedene Zwecke verwendet werden, z. B. für Anonymität, geografische Einschränkungen und Lastausgleich.

Fortschrittsanzeigen und Debuggen

Bei großen Datenübertragungen kann es hilfreich sein, den Fortschritt zu verfolgen. cURL bietet mehrere Optionen, um dich über den Status deiner Anfragen zu informieren:

Fortschrittsanzeige

Mit der Option -# kannst du eine einfache Fortschrittsanzeige aktivieren. Sie zeigt den aktuellen Download-/Upload-Status sowie die übertragene Datenmenge an.

curl -# https://example.com/large_file.tar.gz

Detaillierter Verlauf

Für eine detailliertere Fortschrittsanzeige verwende die Option --verbose. Sie gibt zusätzliche Informationen über die Anfrage aus, wie z. B.:

  • HTTP-Header
  • Antwortcodes
  • Übertragungsrate
  • Zeitstempel
curl --verbose https://example.com/api/v1/users

Debug-Modus

Wenn du auf Probleme bei der Datenübertragung stößt, kannst du den Debug-Modus aktivieren. Mit der Option --trace kannst du alle Sendungen und Antworten protokollieren und so die Ursache des Fehlers ermitteln.

curl --trace log.txt https://example.com/broken_link

Die Protokolldatei enthält detaillierte Informationen über die cURL-Sitzung, einschließlich:

  • DNS-Lookups
  • Verbindungsaufbau
  • Datenübertragung
  • Fehlermeldungen

Indem du die Fortschrittsanzeigen und Debugging-Optionen von cURL nutzt, kannst du deine Datenübertragungen effektiver überwachen und Fehler schnell identifizieren und beheben.

Erweitertes cURL für Skripterstellung und Automatisierung

cURL ist ein mächtiges Tool für die Skripterstellung und Automatisierung, da es dir ermöglicht, komplexe Datenübertragungen mit nur wenigen Befehlen durchzuführen.

Vorteile der Verwendung von cURL für die Automatisierung

  • Vereinfachung von Workflows: cURL übernimmt die manuelle Interaktion mit HTTP-Servern, wodurch du repetitive Aufgaben automatisieren kannst.
  • Zeitersparnis: Durch die Automatisierung von Datenübertragungen kannst du Zeit für wichtigere Aufgaben freimachen.
  • Verbesserte Effizienz: Automatisierte cURL-Skripte laufen konsistent und fehlerfrei ab, was die Effizienz deiner Prozesse steigert.

Skripterstellung mit cURL

Um cURL für die Skripterstellung zu verwenden, kannst du es in deine bevorzugte Skriptsprache integrieren, z. B. Bash, Python oder Ruby. Du kannst cURL-Befehle direkt in dein Skript schreiben und sie mit anderen Skriptfunktionen kombinieren.

Verwenden von Bibliotheken zur Vereinfachung von cURL-Aufgaben

Für bestimmte Sprachen gibt es Bibliotheken, die die Verwendung von cURL weiter vereinfachen. Beispielsweise bietet die Python-Bibliothek requests eine einfach zu bedienende API zum Senden von HTTP-Anfragen.

Tipps für die Automatisierung mit cURL

  • Nutze cURL-Optionen: Nutze die Vielzahl der verfügbaren Optionen, um die Funktionalität deines Skripts anzupassen.
  • Behandle Fehler: Behandle Fehler in deinen Skripten, indem du den Rückgabewert von cURL überprüfst und entsprechende Maßnahmen ergreifst.
  • Protokolliere deine Anfragen: Verwende die Option -v, um detaillierte Protokolle deiner Anfragen zu erstellen, die bei der Fehlerbehebung hilfreich sein können.

Weitere Beiträge

Folge uns

Neue Beiträge

Netzwerk & Routing

Landroid verbindet sich nicht mit WLAN: Ursachen und Lösungen

AUTOR • Apr 30, 2026
Systemadministration

Linux Mint: Speicherplatz freigeben leicht gemacht

AUTOR • Apr 30, 2026
Linux-Server

Linux Mint 32 Bit: Installation, Verwendung und Tipps für ein reibungsloses Erlebnis

AUTOR • Apr 30, 2026
Netzwerk & Routing

Bluetooth-Signale in WLAN konvertieren: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 30, 2026
Linux-Server

Threema unter Linux verwenden: So gelingt der Einstieg

AUTOR • Apr 30, 2026
Netzwerk & Routing

Linux Netzwerk Einrichten: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 30, 2026
Linux-Server

Marktdominanz von Linux: Ein Überblick über den aktuellen Stand

AUTOR • Apr 30, 2026
Linux-Server

WhatsApp für Linux: Installation, Einrichtung und Nutzung

AUTOR • Apr 30, 2026
Netzwerk & Routing

NFS-Volumes mit Linux mounten: Anleitung zum effektiven Dateisystemzugriff

AUTOR • Apr 30, 2026
Netzwerk & Routing

WLAN-Rauchmelder mit FRITZ!Box verbinden: So geht's

AUTOR • Apr 30, 2026
Linux-Server

Erstellung eines bootfähigen Linux-USB-Sticks: Schritt-für-Schritt-Anleitung

AUTOR • Apr 21, 2026
Netzwerk & Routing

Sami Lesebär: WLAN-Einrichtung und Nutzung

AUTOR • Apr 21, 2026
Linux-Server

Thunderbird unter Linux: Installation, Konfiguration und Fehlerbehebung

AUTOR • Apr 21, 2026
Netzwerk & Routing

Roborock verbindet sich nicht mit WLAN: Probleme beheben und Lösungen finden

AUTOR • Apr 21, 2026
Netzwerk & Routing

FRITZ!Box 7590: So beheben Sie einen defekten WLAN-Chip

AUTOR • Apr 21, 2026
Linux-Server

Erstellung von Linux-Partitionen: Ein umfassender Leitfaden für die Verwaltung Ihrer Festplatte

AUTOR • Apr 21, 2026
Linux-Server

MX Linux Systemanforderungen: Alles, was du wissen musst

AUTOR • Apr 21, 2026
Linux-Server

Die besten PDF-Reader für Linux: Eine umfassende Übersicht

AUTOR • Apr 21, 2026
Netzwerk & Routing

Hoymiles HM-800: Schritt-für-Schritt-Anleitung zur WLAN-Verbindung

AUTOR • Apr 21, 2026
Systemadministration

Wechselrichter verbindet sich nicht mit WLAN: Problemlösungen und Anleitungen

AUTOR • Apr 21, 2026

Beliebte Beiträge

Linux-Server

Die ultimative Anleitung zum Linux-Befehl für Updates

AUTOR • Apr 17, 2024
Sicherheit & Hardening

WLAN-Anmeldeseite erscheint nicht: Ursachen und Lösungen

AUTOR • Apr 19, 2024
Linux-Server

Linux auf USB-Stick installieren: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Linux-Server

Die ultimative Anleitung zur fstab-Datei: Mounten und Konfigurieren von Dateisystemen

AUTOR • Dec 19, 2025
Netzwerk & Routing

Handy-Symbolführer: Bedeutung der Symbole auf Ihrem Smartphone

AUTOR • Apr 19, 2024
Linux-Server

Linux-Browser: Vergleich, Funktionen und Tipps für die beste Wahl

AUTOR • Apr 17, 2024
Sicherheit & Hardening

Linux Mint vergessenes Passwort zurücksetzen: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Linux-Server

Linux Mint installieren: Eine Schritt-für-Schritt-Anleitung für Anfänger

AUTOR • Apr 17, 2024
Linux-Server

So erstellen Sie einen bootfähigen Linux Live USB-Stick: Eine Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Linux-Server

OneNote für Linux: Installation, Funktionen und Vorteile

AUTOR • Apr 17, 2024
Netzwerk & Routing

BYD WLAN-Aktivierung: Schritt-für-Schritt-Anleitung

AUTOR • Apr 19, 2024
Linux-Server

Linux und exFAT: Ein Leitfaden für die Kompatibilität

AUTOR • Apr 17, 2024
Systemadministration

USB-Stick-Seriennummer ermitteln: So geht's einfach und schnell

AUTOR • Apr 17, 2024
Systemadministration

Zurücksetzen des Hoymiles DTU: Eine umfassende Anleitung

AUTOR • Jan 23, 2026
Linux-Server

Linux Mint XFCE Systemanforderungen: Alles, was du wissen musst

AUTOR • Dec 12, 2024
Netzwerk & Routing

FritzBox 7590: Maximale Glasfasergeschwindigkeit für Ihr Zuhause

AUTOR • May 09, 2024
Sicherheit & Hardening

Private DNS verwenden auf Android-Geräten

AUTOR • Apr 19, 2024
Netzwerk & Routing

NSLookup in Linux: Befehlsreferenz für DNS-Abfragen

AUTOR • Apr 17, 2024
Netzwerk & Routing

Prüfen, ob ein Port unter Linux geöffnet ist: Einfache Methoden und bewährte Praktiken

AUTOR • Apr 17, 2024
Netzwerk & Routing

WLAN-Probleme mit GoodWe-Wechselrichtern: Troubleshooting und Lösungen

AUTOR • Apr 19, 2024