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

Erweiterung des WLAN-Signals: So vergrößerst du die Reichweite deiner WLAN-Antenne

AUTOR • Jun 11, 2026
Cloud & Virtualisierung

Proxmox auf Mac Mini installieren: So machst du aus Apples Mini-PC einen starken Virtualisierungsserver

AUTOR • Jun 11, 2026
Systemadministration

Die ultimative Anleitung zu rsync Fernkopien für Profis: schnell, sicher, effizient

AUTOR • Jun 11, 2026
Monitoring & Logging

Hoymiles HM 800 blinkt rot: Ursachen, Fehlerbehebung und schnelle Lösungen

AUTOR • Jun 11, 2026
Linux-Server

Linux WLAN Treiber installieren: So bringst du dein WLAN schnell zum Laufen

AUTOR • Jun 11, 2026
Monitoring & Logging

Hoymiles HM-800 blinkt grün: Bedeutung, Ursachen und schnelle Lösungen

AUTOR • Jun 11, 2026
Netzwerk & Routing

WLAN Probleme mit der FRITZ!Box 7590: So findest du die Ursache und behebst sie schnell

AUTOR • Jun 11, 2026
Linux-Server

Fernzugriff auf Ubuntu-Systeme mit Remote Desktop Protocol (RDP): So richtest du es schnell und sicher ein

AUTOR • Jun 11, 2026
Systemadministration

Linux-Ordnergröße anzeigen: Methoden, um Speicherplatz zu verwalten

AUTOR • Jun 11, 2026
Linux-Server

Baldurs Gate 3 unter Linux: Anleitung für begeisterte Spieler, die sofort loslegen wollen

AUTOR • Jun 11, 2026
Netzwerk & Routing

Xiaomi WLAN Probleme: Ursachen finden und beheben – die schnelle Anleitung

AUTOR • Jun 11, 2026
Netzwerk & Routing

WLAN GHz-Bänder auf dem iPhone schnell finden: So prüfst du 2,4 GHz, 5 GHz und 6 GHz

AUTOR • Jun 10, 2026
Netzwerk & Routing

WLAN Änderung für Ring Kamera: Schritt-für-Schritt-Anleitung ohne Stress

AUTOR • Jun 10, 2026
Cloud & Virtualisierung

Erstellung virtueller Maschinen unter Linux: Ein umfassender Leitfaden für schnelle, saubere Setups

AUTOR • Jun 10, 2026
Systemadministration

Windows 11 WLAN aktivieren: Schritt-für-Schritt-Anleitung ohne Umwege

AUTOR • Jun 10, 2026
Netzwerk & Routing

Dein LAN in WLAN verwandeln: So wählst du den besten LAN-zu-WLAN-Adapter

AUTOR • Jun 10, 2026
Automatisierung & Scripting

iTunes unter Linux: Installation und Nutzung auf einem Nicht-Apple-System

AUTOR • Jun 10, 2026
Netzwerk & Routing

WLAN Probleme mit der o2 HomeBox 6641: Lösungen und Tipps für stabiles Internet

AUTOR • Jun 10, 2026
Linux-Server

OneDrive auf Linux synchronisieren: So halten Sie Ihre Dateien nahtlos aktuell

AUTOR • Jun 10, 2026
Cloud & Virtualisierung

BlueStacks für Linux: So nutzen Sie Android-Apps auf Ihrem PC ohne Umwege

AUTOR • Jun 10, 2026

Beliebte Beiträge

Netzwerk & Routing

Bluetooth und WLAN gleichzeitig nutzen: So geht's

AUTOR • May 09, 2024
Netzwerk & Routing

WLAN-Einrichtung unter Windows XP: Schritt-für-Schritt-Anleitung

AUTOR • May 09, 2024
Automatisierung & Scripting

ESP8266 und ESP32: Optimierung des WLANs für eingebettete Systeme

AUTOR • Apr 19, 2024
Netzwerk & Routing

Panasonic TV mit Smartphone verbinden: Schritt-für-Schritt-Anleitung zur kabellosen Verbindung

AUTOR • Apr 19, 2024
Linux-Server

Linux Dateien löschen: So entfernen Sie Dateien sicher und effizient

AUTOR • Apr 17, 2024
Netzwerk & Routing

Die ultimative Anleitung zur Optimierung deiner FRITZ!Box-Antenne für ein starkes und stabiles WLAN

AUTOR • May 09, 2024
Netzwerk & Routing

ALDI TALK WiFi Calling: Nahtlose Anrufe über WLAN

AUTOR • Apr 19, 2024
Netzwerk & Routing

WLAN dBm-Tabelle: Signalstärke verstehen und Netzwerkprobleme beheben

AUTOR • Oct 13, 2025
Netzwerk & Routing

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

AUTOR • Apr 17, 2024
Netzwerk & Routing

HP Envy 6032 mühelos mit WLAN verbinden: Schritt-für-Schritt-Anleitung

AUTOR • Apr 19, 2024
Systemadministration

WinSCP unter Linux: Die ultimative Anleitung zur Verwaltung von Remote-Dateien

AUTOR • Apr 17, 2024
Netzwerk & Routing

Die Signalstärke dBm Tabelle: Eine umfassende Analyse

AUTOR • Dec 12, 2024
Netzwerk & Routing

Linux IP-Adresse anzeigen: Eine Anleitung

AUTOR • Dec 12, 2024
Netzwerk & Routing

DNS-Server unter Linux: Einrichtung, Konfiguration und Verwaltung

AUTOR • Apr 17, 2024
Sicherheit & Hardening

Aktivierung von SSH unter Ubuntu: Schritt-für-Schritt-Anleitung

AUTOR • Apr 17, 2024
Linux-Server

Arch Linux Installation: Eine Schritt-für-Schritt-Anleitung für Einsteiger

AUTOR • Apr 17, 2024
Sicherheit & Hardening

Fronius Wechselrichter zurücksetzen: Häufige Fragen und Lösungen

AUTOR • May 10, 2025
Netzwerk & Routing

Die ultimative Anleitung: Teckin Steckdose – Smart Home einfach gemacht

AUTOR • Apr 19, 2024
Netzwerk & Routing

FRITZ!Box 7520: Der umfassende Ratgeber für Highspeed-Heimnetzwerke

AUTOR • Apr 19, 2024
Systemadministration

Telegram auf Linux: Installation, Einrichtung und nützliche Tipps

AUTOR • Apr 17, 2024