Tutorials  /  Linux Basics

curl Anleitung: HTTP-Anfragen, API-Tests und Datei-Uploads per Kommandozeile

Ccentron Redaktion · Oktober 2025 ·9 Min. Lesezeit ·Linux Basics, Tutorial

Curl ist ein vielseitiges Kommandozeilen-Tool sowie die zugrunde liegende Bibliothek (libcurl) zum Übertragen von Daten über zahlreiche Netzwerkprotokolle wie HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, MQTT und viele mehr. Es bietet Funktionen wie Proxy-Unterstützung, Benutzer-Authentifizierung, Cookies, Datei-Uploads und SSL-Verbindungen. Damit ist es ein unverzichtbares Werkzeug für Entwickler, Systemadministratoren und alle, die mit Web-APIs oder netzwerkbasierten Diensten arbeiten.

Diese Anleitung zeigt, wie man mit curl verschiedene HTTP-Anfragen direkt über das Terminal ausführt. Sie erfahren, wie Sie Dateien herunterladen, eigene Header setzen, unterschiedliche HTTP-Methoden verwenden, Weiterleitungen handhaben, JSON-Daten senden, sich bei Servern authentifizieren und im Verbose-Modus Probleme analysieren. Ob beim Testen von APIs oder beim Automatisieren von Netzwerkoperationen – curl ist ein wertvolles Werkzeug für den Arbeitsalltag.

Schnellreferenz

Wenn Sie nur eine kompakte Übersicht über die gängigsten curl-Befehle benötigen, finden Sie hier eine schnelle Zusammenfassung:

Konsole
# Einfacher GET-Request
$ curl https://example.com

# Ausgabe in Datei speichern
$ curl -o page.html https://example.com

# Weiterleitungen folgen
$ curl -L http://example.com

# POST-Formulardaten senden
$ curl -d "name=John&age=30" -X POST https://example.com

# JSON-Daten senden
$ curl -X POST -H "Content-Type: application/json" -d '{"name":"John"}' https://example.com

# Benutzerdefinierten Header hinzufügen
$ curl -H "Authorization: Bearer " https://api.example.com

# Basis-Authentifizierung
$ curl -u user:pass https://example.com
VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Curl verwenden

Dieser Abschnitt vertieft die Schnellreferenz und erklärt grundlegende curl-Operationen im Detail, einschließlich Dateidownload, Protokollhandhabung und Anforderungsformatierung. Diese Befehle werden häufig verwendet, um die Konnektivität zu prüfen oder öffentliche Webinhalte abzurufen.

Das grundlegende Format des curl-Befehls lautet:

Konsole
$ curl [optionen] 

curl Befehlsoptionen

Option Beschreibung
-o Speichert die Ausgabe in der angegebenen Datei
-O Speichert mit dem gleichen Namen wie die entfernte Datei
-C - Nimmt einen unterbrochenen Download wieder auf
-v Aktiviert den Verbose-Modus (Request/Response-Debugging)
-s Silent-Modus, blendet den Fortschrittsbalken aus
-L Folgt Weiterleitungen
-I Ruft nur die Antwort-Header ab
-X Legt die HTTP-Methode fest (GET, POST, DELETE usw.)
-d Sendet POST-Formulardaten
-H "
"
Fügt benutzerdefinierte Header hinzu (z. B. Content-Type, Authorization)
--user-agent Überschreibt den Standard-User-Agent-String
-u benutzer:pass Sendet Zugangsdaten für Basis-Authentifizierung
-F Lädt eine Datei per Multipart-Formular hoch
--fail Beendet mit Fehler bei 4xx/5xx-Antworten und unterdrückt die Ausgabe des Bodys
-w Gibt benutzerdefinierte Variablen aus, z. B. die benötigte Zeit (%{time_total})

Detaillierte Verwendung

Die folgenden Abschnitte beschreiben jeden curl-Befehl ausführlicher. Sie finden Beispiele, Syntaxerklärungen und Nutzungshinweise, um zu verstehen, wie jede Option funktioniert und wann sie anzuwenden ist. Diese Erläuterungen ergänzen die Schnellreferenz weiter oben für alle, die eine Schritt-für-Schritt-Anleitung bevorzugen.

Eine Webseite herunterladen

Lädt eine Webseite herunter und zeigt den Quellcode im Terminal an.

Befehlssyntax

Konsole
$ curl 

Beispiel

Konsole
$ curl https://www.example.com/index.html

FTP-Protokoll verwenden

Ruft eine Datei über FTP ab.

Befehlssyntax

Konsole
$ curl ftp:///

Beispiel

Konsole
$ curl ftp://ftp.example.com/public/readme.txt

Ausgabe in eine Datei speichern

Speichert den heruntergeladenen Inhalt in einer lokalen Datei, anstatt ihn im Terminal auszugeben.

Befehlssyntax

Konsole
$ curl -o  
$ curl -O 

-o: Speichert die Ausgabe unter einem benutzerdefinierten Dateinamen.

-O: Speichert die Ausgabe mit dem Namen der entfernten Datei.

Beispiel

Konsole
$ curl -o localcopy.html https://example.com/index.html
$ curl -O https://example.com/index.html

Einen unterbrochenen Download fortsetzen

Wurde ein Download beispielsweise wegen Netzwerkproblemen unterbrochen, kann er mit dieser Option an der Abbruchstelle fortgesetzt werden, anstatt neu zu starten.

Befehlssyntax

Konsole
$ curl -C -O 

-C -: Setzt den Download fort.

-O: Speichert die Datei mit dem ursprünglichen Namen.

Beispiel

Konsole
$ curl -C -O https://example.com/bigfile.zip

Ausgabe im Verbose-Modus aktivieren

Aktiviert eine ausführliche Ausgabe, um die Kommunikation von Anfrage und Antwort zu debuggen.

Befehlssyntax

Konsole
$ curl -v 

-v: Verbose-Modus.

Beispiel

Konsole
$ curl -v https://example.com

HTTP-Anfragen ausführen

Curl bietet verschiedene Optionen, um mit Webdiensten zu interagieren. Dieser Abschnitt erklärt, wie man Header überprüft, Weiterleitungen folgt, HTTP-Methoden ändert und Anforderungs-Header anpasst.

Nur Antwort-Header abrufen

Ruft nur die Antwort-Header einer URL ab.

Befehlssyntax

Konsole
$ curl -I 

-I oder --head: Ruft ausschließlich Header ab.

Beispiel

Konsole
$ curl -I https://example.com

Weiterleitungen folgen

Aktiviert das automatische Folgen von HTTP-3xx-Weiterleitungen.

Befehlssyntax

Konsole
$ curl -L 

-L: Folgt Weiterleitungen.

Beispiel

Konsole
$ curl -L http://example.com

HTTP-Methode ändern

Legt mit -X eine benutzerdefinierte HTTP-Methode fest.

Befehlssyntax

Konsole
$ curl -X [METHODE] 

-X: Gibt die HTTP-Methode an (z. B. GET, POST, DELETE).

Beispiel

Konsole
$ curl -X DELETE https://example.com/resource/123

Benutzerdefinierte Header hinzufügen

Mit der Option -H lassen sich ein oder mehrere HTTP-Header hinzufügen.

Befehlssyntax

Konsole
$ curl -H "Header-Name: value" 

Beispiel

Konsole
$ curl -H "User-Agent: Mozilla/5.0" -H "Cache-Control: no-cache" https://example.com

Einen eigenen User-Agent setzen

Mit --user-agent lässt sich der User-Agent-String der Anfrage festlegen.

Befehlssyntax

Konsole
$ curl --user-agent "[Agent String]" 

Beispiel

Konsole
$ curl --user-agent "Mozilla/5.0 (Macintosh)" https://example.com

Formulardaten oder JSON senden (POST)

Mit curl können Sie Formulardaten oder JSON-Daten in HTTP-POST-Anfragen senden. Dies ist besonders wichtig für die Interaktion mit REST-APIs oder beim Übermitteln von Daten an einen Server.

Befehlssyntax

Konsole
$ curl -d "<key1=value1&key2=value2>" -X POST 
$ curl -X POST -H "Content-Type: application/json" -d '' 
</key1=value1&key2=value2>

Beispiel

Konsole
$ curl -d "name=John&age=30" -X POST https://example.com
$ curl -X POST -H "Content-Type: application/json" -d '{"name":"John"}' https://example.com

Basis-Authentifizierung

Beim Zugriff auf Ressourcen, die durch HTTP Basic Auth geschützt sind, können Sie mit der Option -u Ihre Zugangsdaten direkt in der Anfrage angeben.

Befehlssyntax

Konsole
$ curl -u : 

Beispiel

Konsole
$ curl -u admin:secret https://example.com

Erweiterte Nutzung und Tipps

Dieser Abschnitt behandelt fortgeschrittene curl-Muster, die häufig in Skripten, Automatisierung und API-Integrationen eingesetzt werden. Diese Techniken sind nützlich für Scripting, Leistungstests, sichere Authentifizierung und zuverlässige API-Nutzung.

Bei HTTP-Fehlern beenden (--fail)

Lässt curl bei HTTP-Fehlern wie 404 oder 500 still mit einem Fehlercode beenden, ohne Fehlermeldungen auszugeben.

Befehlssyntax

Konsole
$ curl --fail 

--fail: Beendet still bei HTTP-Fehlern (4xx, 5xx).

Beispiel

Konsole
$ curl --fail https://example.com/missing-file

Verwenden Sie dies in Skripten, um die Ausführung zu stoppen, wenn eine URL nicht erreichbar ist oder mit einem Fehler antwortet.

HTTP-Anfragezeit messen (-w)

Gibt die Gesamtzeit aus, die für die Durchführung einer Anfrage benötigt wird. Nützlich für Latenzmessungen und Benchmarking.

Befehlssyntax

Konsole
$ curl -w "%{time_total}\n" -o /dev/null -s 

-w: Benutzerdefinierte Ausgabe nach Abschluss.

%{time_total}: Gesamte Übertragungszeit.

-o /dev/null: Verwirft den Body.

-s: Silent-Modus, um Fortschrittsanzeigen zu unterdrücken.

Beispiel

Konsole
$ curl -w "%{time_total}\n" -o /dev/null -s https://example.com

Dies hilft dabei, die Antwortzeit von APIs oder die Netzwerklatenz zu messen.

Dateien hochladen (-F)

Lädt Dateien per Multipart-Formular hoch.

Befehlssyntax

Konsole
$ curl -F "key=@filename.ext" 

-F: Sendet ein Formularfeld mit Datei.

@filename.ext: Liest die Datei von der lokalen Festplatte.

Beispiel

Konsole
$ curl -F "file=@report.pdf" https://example.com/upload

Verwenden Sie -F, um Dateien als Teil eines Formulars hochzuladen. Nutzen Sie --data-binary, wenn Sie rohe Dateien übertragen möchten.

Mit Bearer Token authentifizieren

Verwenden Sie Bearer Tokens, um auf gesicherte APIs zuzugreifen (z. B. OAuth2-Access-Tokens).

Befehlssyntax

Konsole
$ curl -H "Authorization: Bearer " 

-H: Setzt einen benutzerdefinierten Header.

Authorization: Bearer: Erforderlich für die meisten modernen APIs.

Beispiel

Konsole
$ curl -H "Authorization: Bearer abc123" https://api.example.com/data

Dies ist notwendig, um auf private Endpunkte bei Diensten wie GitHub, Stripe oder Cloud-APIs zuzugreifen.

Leise oder detaillierte Ausgabe (-s, -v)

Passen Sie die Ausgabedarstellung je nach Bedarf an.

Silent-Mode-Syntax

Konsole
$ curl -s 

-s: Unterdrückt Fortschrittsbalken und Fehlermeldungen.

Verbose-Mode-Syntax

Konsole
$ curl -v 

-v: Zeigt vollständige Anfragedetails und Antworten an.

Beispiel

Konsole
$ curl -s https://example.com
Konsole
$ curl -v https://example.com

Verwenden Sie -s für Skripte und Logging. Nutzen Sie -v, um Fehler zu debuggen oder Header zu testen.

Fazit

Curl ist ein unverzichtbares Tool für Entwickler und Systemadministratoren, die über die Kommandozeile mit Webservern, APIs und entfernten Ressourcen arbeiten müssen. Diese Anleitung bietet sowohl Schnellstart-Beispiele als auch detaillierte Erklärungen zu den gängigen curl-Operationen wie dem Herunterladen von Dateien, dem Umgang mit Headern, dem Senden von Daten und der Authentifizierung von Anfragen.

Für weitergehende Informationen empfiehlt sich ein Blick in die offizielle curl-Dokumentation oder die man-Page, um protokollspezifische Funktionen, Scripting-Tricks und fortgeschrittene Anwendungsbeispiele zu entdecken.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren