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.