cURL-Spickzettel
Eine durchsuchbare, druckbare curl-Referenz — HTTP-Methoden, Header, Daten und Formulare, Authentifizierung, Downloads, Cookies, TLS, Proxys und Debugging. Kostenlos.
Grundlagen
12curl https://api.example.com
Eine GET-Anfrage senden und den Body ausgeben
curl -o page.html https://example.com
Die Antwort in eine benannte Datei speichern
curl -O https://example.com/file.zip
Mit dem Remote-Dateinamen speichern
curl -i https://example.com
Antwort-Header plus Body anzeigen
curl -I https://example.com
Nur die Antwort-Header abrufen (HEAD)
curl -v https://example.com
Ausführliche Ausgabe von Anfrage/Antwort
curl -s https://example.com
Stiller Modus, Fortschritt und Fehler ausblenden
curl -sS https://example.com
Still, aber Fehler trotzdem anzeigen
curl -L https://example.com
HTTP-Weiterleitungen folgen (3xx)
curl https://a.com https://b.com
Mehrere URLs in einem Aufruf anfragen
curl 'https://x.com/p?[1-5]'
Einen Zahlenbereich nutzen, um URLs zu durchlaufen
curl --version
Die curl-Version und Features ausgeben
HTTP-Methoden
9curl -X GET https://api.example.com
Explizit eine GET-Anfrage senden
curl -X POST https://api.example.com
Eine POST-Anfrage senden
curl -X PUT https://api.example.com/1
Eine PUT-Anfrage zum Ersetzen einer Ressource senden
curl -X PATCH https://api.example.com/1
Eine PATCH-Anfrage zum Aktualisieren von Feldern senden
curl -X DELETE https://api.example.com/1
Eine DELETE-Anfrage senden
curl -I https://api.example.com
Eine HEAD-Anfrage nur für Header senden
curl -X OPTIONS https://api.example.com
Eine OPTIONS-Preflight-Anfrage senden
curl --head https://api.example.com
Langform von -I für eine HEAD-Anfrage
curl --request POST https://x.com
Langform von -X zum Setzen der Methode
Header
10curl -H 'Accept: application/json' https://x.com
Einen einzelnen Anfrage-Header hinzufügen
curl -H 'X-Token: abc' -H 'X-Env: dev' https://x.com
Mehrere Header hinzufügen
curl -H 'Content-Type: application/json' https://x.com
Den Content-Type des Anfrage-Bodys deklarieren
curl -H 'Authorization: Bearer TOKEN' https://x.com
Einen Bearer-Authorization-Header senden
curl -H 'Host: example.com' https://1.2.3.4
Den Host-Header überschreiben
curl -H 'Accept-Encoding: gzip' https://x.com
Eine gzip-komprimierte Antwort anfordern
curl -A 'MyAgent/1.0' https://x.com
Den User-Agent-String setzen
curl -e 'https://ref.com' https://x.com
Den Referer-Header setzen
curl -H 'X-Debug:' https://x.com
Einen Standard-Header durch Leerlassen entfernen
curl --compressed https://x.com
Die Antwort anfordern und automatisch dekomprimieren
Daten senden
11curl -d 'name=Jane&age=30' https://x.com
URL-kodierte Formulardaten per POST senden
curl -d '@payload.json' https://x.com
Aus einer Datei gelesene Daten per POST senden
curl --data-urlencode 'q=hello world' https://x.com
Ein einzelnes URL-kodiertes Feld per POST senden
curl --data-binary '@file.bin' https://x.com
Rohe Bytes ohne Verarbeitung per POST senden
curl -G --data-urlencode 'q=cats' https://x.com
Die Daten als GET-Query-String anhängen
curl -X POST -H 'Content-Type: application/json' -d '{"name":"Jane"}' https://x.com
Einen JSON-Body per POST senden
curl --json '{"name":"Jane"}' https://x.com
JSON per POST senden und JSON-Header automatisch setzen
curl -F 'name=Jane' https://x.com
Ein Multipart-Formularfeld senden
curl -F 'file=@photo.png' https://x.com
Eine Datei als Multipart-form-data hochladen
curl -F 'file=@a.pdf;type=application/pdf' https://x.com
Eine Datei mit explizitem MIME-Typ hochladen
curl -d '' https://x.com
Mit leerem Body per POST senden
Authentifizierung
9curl -u user:pass https://x.com
HTTP-Basisauthentifizierung
curl -u user https://x.com
Basis-Auth, nach dem Passwort fragen
curl -H 'Authorization: Bearer TOKEN' https://x.com
Einen Bearer-Token-Header senden
curl --oauth2-bearer TOKEN https://x.com
Einen OAuth-2.0-Bearer-Token senden
curl --digest -u user:pass https://x.com
HTTP-Digest-Authentifizierung verwenden
curl --ntlm -u user:pass https://x.com
NTLM-Authentifizierung verwenden
curl --netrc https://x.com
Zugangsdaten aus ~/.netrc lesen
curl --netrc-file creds https://x.com
Zugangsdaten aus einer eigenen netrc-Datei lesen
curl -H 'X-Api-Key: KEY' https://x.com
Einen API-Key-Header senden
Herunterladen & Hochladen
11curl -O https://x.com/file.zip
Mit dem Remote-Dateinamen herunterladen
curl -o out.zip https://x.com/file.zip
In einen gewählten Dateinamen herunterladen
curl -OL https://x.com/file.zip
Herunterladen und Weiterleitungen folgen
curl -C - -O https://x.com/file.zip
Einen teilweisen Download fortsetzen
curl --limit-rate 200k -O https://x.com/f
Die Übertragungsgeschwindigkeit begrenzen
curl -r 0-1023 -o part https://x.com/f
Nur einen Byte-Bereich herunterladen
curl --retry 3 -O https://x.com/f
Den Download bei Fehlschlag wiederholen
curl -T file.txt ftp://x.com/
Eine Datei per PUT/FTP hochladen
curl -T file.txt https://x.com/up
Eine Datei per HTTP PUT hochladen
curl --create-dirs -o a/b/f.txt https://x.com
Fehlende Verzeichnisse für die Ausgabe erstellen
curl -# -O https://x.com/file.zip
Einen einfachen Fortschrittsbalken anzeigen
Cookies
8curl -b 'session=abc123' https://x.com
Ein Cookie inline senden
curl -b cookies.txt https://x.com
Cookies aus einer Datei senden
curl -c cookies.txt https://x.com
Empfangene Cookies in ein Jar schreiben
curl -b jar.txt -c jar.txt https://x.com
Dasselbe Cookie-Jar lesen und aktualisieren
curl -b 'a=1; b=2' https://x.com
Mehrere Cookies auf einmal senden
curl -c - https://x.com
Empfangene Cookies nach stdout ausgeben
curl --junk-session-cookies -b jar.txt https://x.com
Session-Cookies aus dem Jar ignorieren
curl -L -c jar.txt -b jar.txt https://x.com/login
Eine Session über Weiterleitungen hinweg behalten
TLS / SSL
10curl -k https://x.com
Unsicher erlauben (Zertifikatsprüfung überspringen)
curl --cacert ca.pem https://x.com
Mit einem eigenen CA-Bundle verifizieren
curl --capath /etc/ssl/certs https://x.com
Ein Verzeichnis mit CA-Zertifikaten verwenden
curl --cert client.pem https://x.com
Ein Client-Zertifikat senden
curl --cert client.pem --key client.key https://x.com
Ein Client-Zertifikat und privaten Schlüssel verwenden
curl --tlsv1.2 https://x.com
Mindestens TLS 1.2 verlangen
curl --tlsv1.3 https://x.com
Mindestens TLS 1.3 verlangen
curl --tls-max 1.2 https://x.com
Die maximale TLS-Version begrenzen
curl --ciphers ECDHE-RSA-AES128-GCM-SHA256 https://x.com
Erlaubte TLS-Cipher einschränken
curl -vI https://x.com
Die Details des TLS-Handshakes untersuchen
Proxys
9curl -x http://proxy:8080 https://x.com
Die Anfrage über einen HTTP-Proxy leiten
curl --proxy http://proxy:8080 https://x.com
Langform von -x zum Setzen eines Proxys
curl -x proxy:8080 -U user:pass https://x.com
Beim Proxy authentifizieren
curl --proxy-user user:pass -x proxy:8080 https://x.com
Langform der Proxy-Zugangsdaten
curl --socks5 127.0.0.1:1080 https://x.com
Einen SOCKS5-Proxy verwenden
curl --socks5-hostname 127.0.0.1:1080 https://x.com
SOCKS5-Proxy mit Remote-DNS-Auflösung
curl --socks4 127.0.0.1:1080 https://x.com
Einen SOCKS4-Proxy verwenden
curl --noproxy example.com https://x.com
Den Proxy für bestimmte Hosts umgehen
curl -x '' https://x.com
Jeden konfigurierten Proxy deaktivieren
Debugging & Ausgabe
11curl -w '%{http_code}\n' -o /dev/null -s https://x.com
Nur den HTTP-Statuscode ausgeben
curl -w '%{time_total}\n' -o /dev/null -s https://x.com
Die gesamte Übertragungszeit ausgeben
curl -w '@format.txt' https://x.com
Das write-out-Format aus einer Datei lesen
curl -D headers.txt https://x.com
Antwort-Header in eine Datei schreiben
curl -D - -o body.txt https://x.com
Header nach stdout, Body in eine Datei
curl --trace trace.txt https://x.com
Voller Hex-Trace der Übertragung
curl --trace-ascii - https://x.com
ASCII-Trace nach stdout
curl --trace-time -v https://x.com
Zeitstempel zur ausführlichen Ausgabe hinzufügen
curl -v https://x.com 2>&1 | less
Durch das ausführliche Log blättern
curl -sS -o /dev/null -w '%{size_download}\n' https://x.com
Die heruntergeladene Byte-Anzahl ausgeben
curl --libcurl out.c https://x.com
Äquivalenten libcurl-C-Quellcode ausgeben
Timeouts & Wiederholungen
10curl --connect-timeout 5 https://x.com
Die Verbindungsphase in Sekunden begrenzen
curl --max-time 30 https://x.com
Die gesamte Operationszeit begrenzen
curl --retry 3 https://x.com
Bei vorübergehenden Fehlern wiederholen
curl --retry 3 --retry-delay 2 https://x.com
Zwischen Wiederholungsversuchen warten
curl --retry 5 --retry-max-time 60 https://x.com
Die gesamte Wiederholungszeit begrenzen
curl --retry-connrefused https://x.com
Auch bei abgelehnter Verbindung wiederholen
curl --retry-all-errors https://x.com
Bei jedem Fehler wiederholen, nicht nur vorübergehenden
curl --speed-limit 100 --speed-time 10 https://x.com
Abbrechen, wenn für eine Dauer zu langsam
curl --keepalive-time 60 https://x.com
Das TCP-Keep-alive-Intervall setzen
curl --expect100-timeout 1 https://x.com
Die Wartezeit auf ein 100-continue begrenzen
Kein Eintrag passt zu „:q“.
Brauchen Sie Hilfe?
Ein Problem mit diesem Tool gefunden? Sagen Sie es unserem Team.