12k
All articles

Grundlegende curl-Befehle, die jeder Webentwickler kennen sollte

Kommandozeilen-API-Tests laufen schneller mit wesentlichen curl-Befehlen für GET, POST, Header, Authentifizierung, Timeouts und Debugging für Webentwickler.

OpenReplay Team
OpenReplay Team
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

Wie gehe ich mit API-Rate-Limiting bei curl-Befehlen um?

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.

Was ist der Unterschied zwischen den -d und -F Flags in curl?

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.

Kann ich curl zum Testen von GraphQL-APIs verwenden?

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

Wie debugge ich SSL-Zertifikatsprobleme mit curl?

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.

Was ist der beste Weg, authentifizierte APIs mit curl zu testen?

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

We use cookies to improve your experience. By using our site, you accept cookies.