Das weitverbreitete Open-Source-Kommandozeilenprogramm cURL ist schon länger in Linux-Systemen integriert. Seit dem Update für Windows vom April 2018 ist es auch Bestandteil des Microsoft Betriebssystems. Es kommt außerdem in Autos, Fernsehern, Routern, Druckern, Smartphones, Tablets und vielen weiteren Geräten zum Einsatz. Was kann das Datentransfer-Tool, wie wird es genutzt und welche Neuigkeiten gibt es in Verbindung mit der Unterstützung des Protokolls HTTP/3?

Wofür wird cURL eingesetzt?

cURL (client for URLs) ist ein Programm zum Übertragen von Dateien über eine Internetadresse. Dabei sind auch POST-Übertragungen möglich. Das Kommandozeilentool eignet sich für die Verwendung von Batch- oder Shellskripten zur Übertragung von Dateien über:

  • HTTP
  • HTTPS
  • FTP
  • SFTP
  • FTPS
  • GOPHER
  • SCP

Das Tool ermöglicht neben der Dateiübertragung die Fernsteuerung und das Testen von Websites.

Praktische Funktionen

Das Tool bietet Website-Administratoren eine Menge nützlicher Funktionen. Die folgenden Beispiele verdeutlichen die Möglichkeiten.

Download mehrerer Dateien

Das Tool ermöglicht den eleganten Download mehrerer Dateien. Sind Fotos im Verzeichnis „Bilder“ unter Dateinamen von 01.png bis 50.png gespeichert, genügt für das Herunterladen eine Codezeile:

curl http://beispielseite.de/bilder/[01-50].png -o „img#1.png

Der Parameter -o stellt sicher, dass die Dateien in eine Datei gespeichert werden. cURL speichert die Dateien dann automatisch unter den Dateinamen img01.png bis img50.png.

Dateiupload via FTP

Das Open-Source-Tool unterstützt unter anderem das FTP-Protokoll. Für die Ausgabe des Index des Hauptordners genügt der Aufruf von „curl ftp://username:password@beispielseite.de“.

Dabei werden Benutzername und Passwort in der URL kodiert.

Für den Upload einer Datei nutzen Sie den Parameter -T und geben den Dateinamen sowie den vollständigen Dateipfad an: „curl -T uploaddatei.txt -u username:password ftp://beispielseite.de/files/meineDatei.txt„. In der Folge kopiert cURL die Datei „uploaddatei.txt“ in das angegebene Verzeichnis unter dem Dateinamen „meineDatei.txt“.

Den HTTP-Header auslesen

Das Auslesen des HTTP-Headers erfolgt mit dem Befehl:

curl –head http://beispielseite.de/

Wenn Sie den Header in der Datei „header.txt“ abspeichern möchten, nutzen Sie folgende Eingabe:

curl –dump-header header.txt http://beispielseite.de

Eine URL mit unterschiedlichen GET-Parametern auslesen

Sie können beim Einsatz von cURL GET-Parameter übergeben und so zum Beispiel auf unterschiedliche Seiten zugreifen. Denkbar ist beispielsweise eine Website, deren Einzelseiten über ein Schema wie „http://beispielseite.de/seite.php?id01″ und „http://beispielseite.de/seite.php?id=2″ aufgerufen werden. Zum Auslesen verwenden Sie jetzt „id“ als regulären Ausdruck und erfassen so alle Seiten. Der Befehl lautet:

„curl -o seiten#1.html http://beispielseite.de/seite.php?id=[1-50]"

cURL ruft in der Folge alle Dokumente mit den IDs 1 bis 50 auf und schreibt die Dateien in seite01.html bis seite50.html. Hinweis: Wenn eine der Dateien in der Schlange nicht erreichbar ist und zu einem 404-Fehler führt, fährt cURL einfach mit der nächsten Datei fort. Die entsprechende Datei wird dann nicht angelegt.

Noch experimentell: erfolgreicher HTTP/3-Transer mithilfe von cURL

HTTP/3 befindet sich aktuell in der Entwicklung und ist noch nicht offiziell verabschiedet. Für die Unterstützung von HTTP/3 nutzt cURL die Implementierung „Quiche“ von Cloudfare und unterstützt damit das Protokoll. Die Technik ist allerdings noch in der experimentellen Phase.

Fazit: cURL ist überall im Einsatz

Das Open-Source-Tool wird ständig weiterentwickelt und ist in der Version 7.65.3 erhältlich (Stand: August 2019). Für weiterführende Information ist das kostenlose Buch „Everything cURL“ (in Englisch) die Empfehlung. In dem Buch finden Sie alles rund um cURL, libcURL und damit zusammenhängende Projekte. Nutzen Sie das Tool für den effektiven Datenaustausch über die verschiedenen Internetprotokolle.

Photo by Kevin Horvat on Unsplash

Benjamin Schmitz
Letzte Artikel von Benjamin Schmitz (Alle anzeigen)

One thought on “Was ist cURL?

  1. Schöner Beitrag.
    Ich liebe Curl und Wget …. und meinem Umkreis gibt es soviele Menschen, die diese mächtigen Werkzeuge leider noch nicht kennen 🙁

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Die von Ihnen hier erhobenen Daten werden von der Host Europe GmbH zur Veröffentlichung Ihres Beitrags in diesem Blog verarbeitet. Weitere Informationen entnehmen Sie bitte folgendem Link: www.hosteurope.de/AGB/Datenschutzerklaerung/