Back

Grundlegende curl-Befehle, die jeder Webentwickler kennen sollte

Grundlegende curl-Befehle, die jeder Webentwickler kennen sollte

Neu bei curl? Beginnen Sie mit unserem Einsteiger-Leitfaden: HTTP-Anfragen mit curl stellen

Beim Debugging von APIs oder beim Testen von Endpunkten benötigen Sie schnelle, zuverlässige Tools, die keine komplexe Einrichtung erfordern. Während GUI-Tools wie Postman ihren Platz haben, bieten curl-Befehle für Webentwickler unvergleichliche Geschwindigkeit und Flexibilität für Tests über die Kommandozeile. Diese Referenz behandelt die wesentlichen curl-Befehle, die Sie täglich verwenden werden – von einfachen GET-Anfragen bis hin zu erweiterten Authentifizierungsmustern.

Wichtige Erkenntnisse

  • Meistern Sie zuerst grundlegende GET- und POST-Anfragen – sie decken 80% der API-Test-Anforderungen ab
  • Verwenden Sie immer die richtigen Header für Content-Type und Authorization
  • Nutzen Sie den Verbose-Modus (-v) beim Debugging von Verbindungsproblemen
  • Setzen Sie Timeouts, um hängende Skripte in Produktionsumgebungen zu verhindern
  • Speichern Sie Antworten in Dateien für Analyse und Vergleich
  • Folgen Sie Weiterleitungen mit -L für vollständige Anfrageketten
  • Kombinieren Sie curl mit Tools wie jq für bessere JSON-Verarbeitung

Wesentliche curl-Befehle für API-Tests

1. Einfache GET-Anfrage

Der einfachste curl-Befehl ruft Daten von jeder URL ab:

curl https://api.github.com/users/octocat

Dies gibt die rohe JSON-Antwort zurück. Für bessere Lesbarkeit leiten Sie die Ausgabe durch einen JSON-Formatierer:

# macOS/Linux
curl https://api.github.com/users/octocat | jq

# Windows (erfordert jq-Installation)
curl https://api.github.com/users/octocat | jq

Wann verwenden: Schnelle API-Endpunkt-Tests, Überprüfung ob Services antworten, oder Daten für Skripte abrufen.

2. POST-Anfrage mit JSON-Daten

Moderne APIs erwarten JSON-Payloads. So senden Sie sie korrekt:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name":"John Doe","email":"john@example.com"}' \
  https://api.example.com/users

Für komplexes JSON speichern Sie es in einer Datei und referenzieren diese:

curl -X POST \
  -H "Content-Type: application/json" \
  -d @user-data.json \
  https://api.example.com/users

Wann verwenden: Ressourcen erstellen, Formulare übermitteln oder POST-Endpunkte mit strukturierten Daten testen.

3. Benutzerdefinierte Header hinzufügen

APIs benötigen oft spezifische Header für Authentifizierung, Content-Negotiation oder benutzerdefinierte Parameter:

curl -H "Authorization: Bearer your-token-here" \
     -H "Accept: application/json" \
     -H "User-Agent: MyApp/1.0" \
     https://api.example.com/protected-resource

Wann verwenden: API-Authentifizierung, User-Agent setzen, Antwortformate spezifizieren oder benutzerdefinierte Anwendungsheader hinzufügen.

4. Weiterleitungen folgen

Standardmäßig stoppt curl bei Weiterleitungen. Verwenden Sie -L, um ihnen automatisch zu folgen:

curl -L https://bit.ly/shortened-url

Begrenzen Sie Weiterleitungssprünge, um Endlosschleifen zu verhindern:

curl -L --max-redirs 5 https://example.com

Wann verwenden: Kurze URLs testen, API-Weiterleitungen folgen oder Weiterleitungsketten in Ihren Anwendungen überprüfen.

5. Antwort in Datei speichern

Anstatt Ihr Terminal zu überladen, speichern Sie Antworten direkt in Dateien:

# Mit ursprünglichem Dateinamen speichern
curl -O https://example.com/data.json

# Mit benutzerdefiniertem Dateinamen speichern
curl -o my-data.json https://api.example.com/export

# Header und Body separat speichern
curl -D headers.txt -o response.json https://api.example.com/data

Wann verwenden: Dateien herunterladen, API-Antworten für Analyse speichern oder Testergebnisse archivieren.

6. Basis-Authentifizierung

Viele APIs verwenden noch immer Basis-Authentifizierung. Handhaben Sie sie sicher:

curl -u username:password https://api.example.com/secure-endpoint

Für bessere Sicherheit lassen Sie curl nach dem Passwort fragen:

curl -u username https://api.example.com/secure-endpoint

Wann verwenden: Interne APIs testen, Entwicklungsendpunkte zugreifen oder mit Legacy-Authentifizierungssystemen arbeiten.

7. Verbose-Ausgabe für Debugging

Wenn Anfragen fehlschlagen oder sich unerwartet verhalten, zeigt der Verbose-Modus genau, was passiert:

curl -v https://api.example.com/endpoint

Dies zeigt:

  • Gesendete Request-Header
  • Empfangene Response-Header
  • SSL/TLS-Handshake-Details
  • Verbindungsinformationen

Wann verwenden: Fehlgeschlagene Anfragen debuggen, API-Verhalten verstehen oder SSL-Probleme beheben.

8. Timeouts setzen

Verhindern Sie hängende Anfragen durch Setzen von Verbindungs- und Gesamt-Timeouts:

# 10-Sekunden Verbindungs-Timeout, 30-Sekunden Gesamt-Timeout
curl --connect-timeout 10 --max-time 30 https://slow-api.example.com

Wann verwenden: Langsame Endpunkte testen, Skript-Hänger verhindern oder mit unzuverlässigen Netzwerken arbeiten.

9. Formulardaten-Übermittlung

Für traditionelle Formularübermittlungen oder Datei-Uploads:

# Standard-Formulardaten
curl -X POST -d "username=john&password=secret" https://example.com/login

# Datei-Upload
curl -F "file=@document.pdf" -F "description=Important doc" https://example.com/upload

Wann verwenden: Formular-Endpunkte testen, Dateien hochladen oder mit Multipart-Daten arbeiten.

10. Response-Header einbeziehen

Sehen Sie sowohl Header als auch Body in der Ausgabe:

# Header mit Antwort einbeziehen
curl -i https://api.example.com/endpoint

# Nur Header (nützlich für Statuscode-Überprüfung)
curl -I https://api.example.com/endpoint

Wann verwenden: Response-Codes überprüfen, Caching-Probleme debuggen oder API-Header untersuchen.

Erweiterte curl-Befehle für Webentwickler

Mit Cookies arbeiten

Session-Status über Anfragen hinweg beibehalten:

# Cookies in Datei speichern
curl -c cookies.txt https://example.com/login

# Gespeicherte Cookies verwenden
curl -b cookies.txt https://example.com/dashboard

Proxy-Konfiguration

Anfragen durch Proxies für Tests oder Sicherheit leiten:

curl --proxy http://proxy.company.com:8080 https://api.example.com

SSL-Zertifikat-Behandlung

Für Entwicklungsumgebungen mit selbstsignierten Zertifikaten:

# Zertifikatsprüfung überspringen (nur Entwicklung)
curl -k https://localhost:8443/api

# Benutzerdefiniertes CA-Zertifikat verwenden
curl --cacert custom-ca.pem https://secure-api.example.com

Performance- und Automatisierungstipps

Batch-Operationen

Mehrere Endpunkte effizient testen:

# Mehrere URLs in einem Befehl
curl https://api1.example.com https://api2.example.com

# Aus einer Datei
curl -K url-list.txt

Ausgabeformatierung

Antworten lesbarer machen:

# JSON mit jq schön formatieren
curl -s https://api.example.com/data | jq '.'

# Spezifische Felder extrahieren
curl -s https://api.example.com/users | jq '.[] | .name'

Fehlerbehandlung

curl bei HTTP-Fehlern für Skripte stumm fehlschlagen lassen:

curl --fail --silent https://api.example.com/endpoint || echo "Request failed"

curl vs. andere Tools: Wann was verwenden

Verwenden Sie curl wenn:

  • Schnelle Kommandozeilen-Tests
  • Skripting und Automatisierung
  • CI/CD-Pipeline-Integration
  • Minimaler Systemressourcenverbrauch

Verwenden Sie Postman wenn:

  • Komplexe Request-Sammlungen
  • Team-Zusammenarbeit
  • Visuelle Response-Inspektion
  • Erweiterte Test-Workflows

Verwenden Sie HTTPie wenn:

  • Lesbarere Syntax bevorzugt
  • JSON-first API-Tests
  • Bessere Standard-Formatierung

Häufig gestellte Fragen

Verwenden Sie die limit-rate Option, um Anfragen zu drosseln, beispielsweise durch Begrenzung auf 200 Kilobytes pro Sekunde. Sie können auch Verzögerungen zwischen Anfragen in Skripten mit sleep-Befehlen hinzufügen.

Das -d Flag sendet Daten als form-encoded, was der Standard für POST-Anfragen ist. Das -F Flag sendet Daten als multipart form data, was beim Hochladen von Dateien erforderlich ist.

Ja. Senden Sie dazu eine POST-Anfrage mit einem JSON-Payload, der Ihre GraphQL-Query enthält.

Verwenden Sie den Verbose-Modus, um den SSL-Handshake zu inspizieren, überspringen Sie die Zertifikatsprüfung temporär falls nötig mit dem insecure Flag, oder spezifizieren Sie eine benutzerdefinierte Certificate Authority mit der cacert Option.

Für Token-basierte Authentifizierung übergeben Sie den Authorization-Header mit Ihrem Token. Für Basis-Authentifizierung verwenden Sie die username und password Option. Zur Verbesserung der Sicherheit speichern Sie sensible Werte in Umgebungsvariablen und referenzieren sie in Ihren Befehlen.

Fazit

Diese curl-Befehle bilden das Rückgrat des Kommandozeilen-API-Testings. Beginnen Sie mit einfachen GET- und POST-Anfragen und integrieren Sie dann schrittweise Header, Authentifizierung und erweiterte Features, während Ihre Anforderungen wachsen. Der Schlüssel liegt darin, Muskelgedächtnis für die häufigsten Muster aufzubauen – sobald Sie Endpunkte schnell vom Terminal aus testen können, werden Sie während der Entwicklung und beim Debugging ständig zu curl greifen.

curl-Befehle für Webentwickler bieten die Grundlage für effizientes API-Testing und Debugging. Diese Befehle funktionieren plattformübergreifend und integrieren sich nahtlos in Entwicklungsworkflows, was sie zu unverzichtbaren Tools für das Toolkit jedes Webentwicklers macht.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers