
curl
curl ist ein kleines Programm, mit dem man über die Kommandozeile Daten aus dem Internet abruft oder hinschickt. Es ist das Standardwerkzeug, um Webadressen und Programmierschnittstellen ohne Browser zu testen.
Wenn du eine Internetseite ansehen willst, tippst du eine Adresse in den Browser. Der Browser holt die Daten vom fremden Rechner und zeigt sie hübsch formatiert an. curl macht denselben Abruf, aber ohne Fenster und ohne Formatierung. Man gibt den Befehl in einer Textzeile ein, und curl schreibt die rohe Antwort direkt in dasselbe Textfenster. Der Name steht für « Client for URL »: ein Programm, das eine Webadresse anfordert. Es läuft auf Windows, macOS, Linux und praktisch jedem Server und ist seit 1998 kostenlos verfügbar.
Das Standardwerkzeug für Schnittstellen-Tests
Moderne Software besteht selten aus einem einzigen Programm. Stattdessen reden viele Dienste über das Netz miteinander. Diese Übergabestellen nennt man Programmierschnittstellen, kurz APIs. Auch KI-Dienste wie ChatGPT werden von Entwicklern fast immer über so eine Schnittstelle angesprochen, nicht über die Website.
Wenn dabei etwas nicht funktioniert, braucht man einen möglichst einfachen Test. Genau dafür ist curl gemacht. Es zeigt ungeschminkt, was der fremde Server antwortet: den Text, die Fehlermeldung, den Statuscode. Ein Browser würde stattdessen vieles automatisch nachladen, umleiten oder verstecken. Deshalb gilt curl als ehrlichere Auskunft über den tatsächlichen Zustand eines Dienstes.
Ein zweiter Grund ist die Verbreitung. Fast jede technische Dokumentation zeigt ihre Beispiele als curl-Befehl, weil dieser überall gleich funktioniert. Wer den Befehl kopiert, kann sofort ausprobieren, ob sein Zugangsschlüssel gültig ist. Erst danach baut man den Aufruf in die eigene Programmiersprache ein.
Aufbau eines curl-Aufrufs
Der einfachste Fall lautet: curl, Leerzeichen, dann die Adresse. curl schickt daraufhin eine Anfrage an den Server und gibt die Antwort aus. Diese Anfrage folgt dem Regelwerk des Webs, dem HTTP-Protokoll. Es legt fest, wie eine Bitte und die passende Antwort aufgebaut sein müssen.
Fast immer braucht man aber Zusätze, sogenannte Optionen. Mit einer Option gibt man einen Zugangsschlüssel mit, der beweist, wer man ist. Mit einer anderen schickt man selbst Daten an den Server, zum Beispiel die Frage an ein KI-Modell. Solche Befehle werden dadurch schnell mehrere Zeilen lang, sind aber immer noch nur eine einzige Anweisung.
Wichtig ist, was curl nicht tut. Es versteht kein JavaScript und baut keine Seite optisch auf. Wer eine Nachrichtenseite abruft, bekommt nur den Quelltext als Buchstabensalat. curl ist also kein Ersatz für einen Browser, sondern ein Messgerät für die Leitung dahinter.
curl in Doku, Skripten und Servern
Am häufigsten begegnet dir curl in Anleitungen. Öffne die Entwicklerseiten von OpenAI, Google oder Stripe, und das erste Codebeispiel ist meist ein curl-Befehl. Auch in Installationsanleitungen steht oft eine Zeile, die mit curl ein Skript herunterlädt und ausführt. Bei solchen Zeilen lohnt Vorsicht: Man führt fremden Code aus, ohne ihn gelesen zu haben.
Unsichtbar steckt curl außerdem in unzähligen Geräten. Die zugehörige Programmbibliothek libcurl ist in Autos, Druckern, Fernsehern und Spielkonsolen eingebaut. Der Entwickler Daniel Stenberg schätzt die Zahl der Installationen auf mehrere Milliarden. Das Projekt ist ein oft genanntes Beispiel dafür, wie stark die digitale Welt von kleinen, freien Programmen abhängt.
Ein verwandter Begriff ist wget. Dieses Werkzeug ist auf das Herunterladen ganzer Dateien und Seiten spezialisiert. curl deckt dagegen mehr Protokolle ab und ist eher zum Hin- und Herschicken einzelner Anfragen gedacht. Für Schnittstellen-Tests greifen Entwickler deshalb fast immer zu curl.