cURL unter Linux: Was Sie wissen sollten, bevor Sie beginnen
Free cURL free software ist eines der ältesten und beliebtesten Open Source-Projekte. Das Programm, dessen Name von der Client- URL stammt , wird zum Senden von Daten über Computernetzwerke verwendet. Die offene Lizenz gewährt das Recht, das Programm für jeden Zweck zu nutzen. Heute wird cURL auf einer Vielzahl von Geräten verwendet.
- Was ist cURL?
- Wie funktioniert cURL?
- Wie wird libcurl verwendet?
- Wie wird cURL verwendet?
- Praktische Beispiele für den Befehl cURL unter Linux
- Erster Test mit cURL
- Laden Sie Dateien mit cURL herunter
- Greifen Sie mit cURL auf Serverdaten zu
- Greifen Sie mit cURL auf eine Datei zu und speichern Sie sie auf Ihrer lokalen Festplatte
- Setzen Sie den Download mit cURL fort, wenn er unterbrochen wurde
- Kommunizieren Sie mit dem Server über cURL
- Überprüfen Sie, ob mit cURL auf einen Server zugegriffen werden kann
- Verteilen Sie den Header mit cURL
- Analysieren Sie Umleitungsketten mit cURL
- Verschieben Sie Daten mit cURL auf den Server
- Lesen Sie Cookies mit cURL
- Allgemeine Optionen
- Zusätzliche Informationen anzeigen
- Geben Sie mit cURL Benutzername und Passwort ein
- Verwenden Sie einen Proxy mit cURL
Was ist cURL?
Die cURL- Software besteht aus zwei Komponenten. Die libcurl-Programmbibliothek ist das Rückgrat der Datenübertragung und unterstützt die folgenden Protokolle:
- DICT
- DATEI
- FTP
- FTPS
- GOPHER
- HTTP
- HTTPS
- IMAP
- IMAPS
- LDAP
- LDAPS
- POP3
- POP3S
- RTMP
- RTSP
- SCP
- SFTP
- SMB
- SMBS
- SMTP
- SMTPS
- TELNET
- TFTP
Das cURL-Befehlszeilenprogramm fungiert seinerseits als textbasierte Schnittstelle und interagiert über die Befehlszeile mit libcurl.
Das Programm ist ein wichtiges Werkzeug für die Webentwicklung , da der Entwickler direkt mit dem Server kommunizieren kann, anstatt über einen Browser darauf zugreifen zu müssen. Die auf cURL-Befehlen basierenden Skripte (auf Englisch: cURL- Befehle ) werden zum Automatisieren von Prozessen, zum Debuggen und Testen verwendet.
Wie funktioniert cURL?
Die beiden Komponenten von cURL arbeiten unterschiedlich.
Wie wird libcurl verwendet?
Die libcurl-Programmbibliothek enthält Funktionen zum Senden von Daten über Computernetzwerke. Es gibt Sprachbindungen für Dutzende von Programmiersprachen. Daher stehen die libcurl-Funktionen einer großen Anzahl von Programmen zur Verfügung, die mit Servern kommunizieren.
Wie wird cURL verwendet?
Das Kommandozeilenprogramm cURL wird für die Webentwicklung verwendet. Am einfachsten ist es, die cURL-Befehle in die Befehlszeile einzugeben. Mit den richtigen Kenntnissen ist es möglich, Server und APIs zu testen und zu debuggen .
Anstatt die Befehle manuell über die Befehlszeile einzugeben, können sie in Skripte integriert werden . Auf diese Weise können komplexe Vorgänge wie das Hoch- oder Herunterladen von Daten standardisiert und automatisiert sowie das Ausfüllen und Kopieren ganzer Websites geplant werden.
Das Schema eines cURL- Befehls hat normalerweise die folgende Struktur:
# Esquema general de un cURL command curl [opciones] <url>
In den folgenden Beispielen verwenden wir das folgende Formular:
url="www.example.com" curl [opciones] "$url"
Wir haben die eigentliche URL an eine Variable ausgelagert. Auf diese Weise mit den Optionen diejenigen, die den Betrieb der cURL-Ausführung bestimmen.
Praktische Beispiele für den Befehl cURL unter Linux
Um die folgenden cURL-Beispiele verwenden zu können, benötigen Sie:
- Ein Computer mit Linux oder einem UNIX-ähnlichen Betriebssystem – auch macOS.
- Zugriff auf die Konsole oder die Befehlszeile.
- Ein Code- Editor oder ein Nur- Text-Editor zum Erstellen der Befehle.
Verwenden Sie nur einen Code- oder Nur-Text-Editor, um Ihre Befehle zu erstellen. Textverarbeitungsprogramme wie Word, OpenOffice oder LibreOffice dürfen unter keinen Umständen zum Vorbereiten von Text über die Befehlszeile verwendet werden.
Erster Test mit cURL
Stellen Sie zunächst sicher, dass cURL auf dem System installiert ist. Öffnen Sie dazu die Befehlszeile und geben Sie den folgenden Befehl ein (manchmal müssen Sie die Eingabetaste drücken, um den Code auszuführen).
# Comprobar que cURL está instalado curl --version
Wenn ein Text angezeigt wird , der mit Curl beginnt, gefolgt von einer Versionsnummer, wird cURL installiert. Wenn cURL nicht installiert ist, befolgen Sie die Anweisungen unter? Alles locken? um das Programm zu installieren.
Verwenden Sie die Befehle curl –help und curl –manual , um mehr über den Befehl zu erfahren.
Außerdem müssen Sie ein neues Dokument in einem Code-Editor öffnen. Sie können die Befehle dort kopieren, um sie vorzubereiten, bevor Sie sie in die Befehlszeile eingeben. Wenn der Befehl fertig ist, kopieren Sie ihn in die Befehlszeile und führen Sie ihn aus.
Die in der Befehlszeile verwendeten Befehle haben viele Auswirkungen. Grundsätzlich könnte ein falsch geschriebener Befehl das gesamte System lähmen. Aus diesem Grund ist es so wichtig, Befehle nicht direkt aus dem Internet zu kopieren und nur in der lokalen Befehlszeile auszuführen. Öffnen Sie stattdessen ein leeres Fenster im Code-Editor. In dieses Feld können Sie die Befehle einfügen: Ein Zwischenschritt, der Sie dazu zwingt, jeden Befehl sorgfältig zu überprüfen und gegebenenfalls anzupassen, bevor Sie ihn ausführen.
Laden Sie Dateien mit cURL herunter
Greifen Sie mit cURL auf Serverdaten zu
Grundsätzlich können Sie mit cURL auf jede Ihnen bekannte URL zugreifen. In diesem Zusammenhang beschreibt das Verb curl ( curl in Englisch) den Prozess der Adressierung einer URL mit cURL. Versuchen Sie das folgende Beispiel:
# Dirígete al siguiente sitio con cURL site="www.google.com" curl "$site"
Wenn Sie den Code auf diese Weise ausführen, ist das Ergebnis verstümmelter Text. Dies liegt daran, dass die Google-Startseite als Antwort auf den cURL-Zugriff in HTML zurückgegeben wird. Die HTML-Quelle wird in der Befehlszeile ohne Formatierung angezeigt. Für die korrekte Darstellung ist ein Browser erforderlich. Im Allgemeinen ist es sinnvoller, die Datei lokal zu speichern.
Geben Sie den Befehl clear in die Befehlszeile ein, um den Bildschirm zu löschen. Dadurch werden unnötige Daten von der Befehlszeile gelöscht.
Greifen Sie mit cURL auf eine Datei zu und speichern Sie sie auf Ihrer lokalen Festplatte
Wir haben ein Logo von Wikipedia in englischer Sprache heruntergeladen. Die Option -O ( oder Großbuchstaben und nicht Null) weist cURL an, den Namen der Datei am Ende der URL zu verwenden. Mit dieser Option speichert cURL die heruntergeladene Datei auf der gleichnamigen lokalen Festplatte.
# Una imagen de Wikipedia en inglés archivo="https://en.wikipedia.org/static/images/project-logos/enwiki-2x.png" # Abrir la imagen y guardarla localmente con el mismo nombre curl "$archivo" -O
Wie verhält es sich jedoch mit einer URL, die keinen Dateinamen enthält? Versuchen Sie den folgenden Code:
# Página de inicio de Google homepage="www.google.com" # Abrir la página de inicio con opción -O curl "$homepage" -O
Wie Sie sehen, wird ein Fehler angezeigt, da die URL der Google-Startseite keinen Dateinamen enthält. In diesem Fall müssen Sie die Option -o ( oder Kleinbuchstaben) verwenden , um ihm einen Dateinamen zuzuweisen.
# Página de inicio de Google homepage="www.google.com" # Nombre del archivo que se escribirá nombre="homepage-google.html" # Abrir página de inicio y guardarla localmente con el nombre seleccionado curl "$homepage" -o "$name"
Setzen Sie den Download mit cURL fort, wenn er unterbrochen wurde
Möglicherweise haben Sie einmal darunter gelitten – Sie haben stundenlang auf das Herunterladen einer großen Datei gewartet , als der Download plötzlich gestoppt wurde und Sie von vorne beginnen müssen. In diesem Fall kann Ihnen die Option -C- helfen:
# Un archivo de gran tamaño (genoma humano) para descargar archivo="https://ftp.ncbi.nih.gov/genomes/refseq/vertebrate_mammalian/Homo_sapiens/reference/GCF_000001405.39_GRCh38.p13/GCF_000001405.39_GRCh38.p13_genomic.gbff.gz" # Continuar descarga si se interrumpe curl -C- -O "$archivo"
Obwohl die Option -C – ein Leerzeichen nach dem C enthält, ist sie leichter zu lesen und es ist einfacher, sich an die im Beispiel verwendete -C- Äquivalenz zu erinnern .
Mit cURL können Sie einen Download bei Bedarf auch manuell unterbrechen . Bei großen Dateien kann dies von Vorteil sein. Zum Beispiel, wenn Sie das Haus verlassen und Ihren Laptop mitnehmen müssen.
Sie können die aktuelle Ausführung von cURL abbrechen. Drücken Sie zum Abbrechen bei Bedarf wiederholt Strg + C.
Kommunizieren Sie mit dem Server über cURL
Die cURL-Download-Funktion ähnelt dem beliebten Befehlszeilentool wget. CURL ist jedoch keine spezialisierte Download-Software, sondern wurde für die allgemeine Kommunikation über Netzwerke entwickelt und bietet noch mehr Vorteile.
Überprüfen Sie, ob mit cURL auf einen Server zugegriffen werden kann
Mit cURL können Sie überprüfen, ob auf einen Server zugegriffen werden kann. In diesem Sinne funktioniert Curl ähnlich wie der Ping-Befehl. Aufgrund der verfügbaren Protokolle und Optionen kann cURL jedoch flexibler verwendet werden. Auch Ping arbeitet auf der Internet – Schicht, während Wölbungen auf der Anwendungsschicht arbeitet. Das bedeutet, dass Ping prüft, ob sich der Computer im Netzwerk befindet. Stattdessen überprüft der folgende Befehl cURL , ob und wie ein Server reagiert :
# Verificar si un servidor web está disponible server="google.com" curl -I "$server"
Wenn nach dem Ausführen des Codes Statusinformationen angezeigt werden , ist der Server verfügbar.
Verteilen Sie den Header mit cURL
Bei jeder HTTP-Anforderung werden neben der Übertragung des Dokuments auch verschiedene Metadaten ausgetauscht . Diese im HTTP-Header genannten Daten beschreiben sowohl das Dokument als auch den Status der HTTP-Anforderung. Sicher hast du ihn jemals getroffen ? Fehler 404 nicht gefunden ? . Es geht genau um Metadaten: Das angeforderte Dokument wurde nicht gefunden.
Schauen Sie sich das Layout des URL-Headers “Google.com” an. Verwenden Sie dazu Curl mit der Option –head :
# Distribuir encabezado url="google.com" curl --head "$url"
Es sollte unter anderem Folgendes anzeigen: “301 Permanent verschoben”. Dies ist der HTTP-Statuscode für die permanente Umleitung. Was Sie sehen, ist die Umleitung von [google.com] (ohne? Www?) Zu [www.google.com].
Anstelle der Option –head können Sie auch die entsprechende Schreibweise -I ( Großbuchstabe i ) verwenden. Sich zu erinnern, denken Sie den Zugriff auf i nformationen eine URL und nicht dessen Inhalt.
Analysieren Sie Umleitungsketten mit cURL
Die HTTP-Weiterleitung (auf Englisch: Weiterleitungen ) kann in Reihe aktiviert werden. In diesem Zusammenhang wird der Begriff Umleitungskette (oder Umleitungskette) verwendet. Stellen Sie sich eine Website vor, deren Homepage [https://www.example.com/] lautet. Wenn wir von [http://example.com] zu dieser Site gehen, werden die folgenden Weiterleitungen auftreten:
- [http://example.com]? [https://example.com]
- [https://example.com]? [https://www.example.com]
- [https://www.example.com]? [https://www.example.com/]
Eine Verkettung von Weiterleitungen führt zu längeren und unnötigen Ladezeiten und sollte vermieden werden. Leider ist dieses Problem schwer zu analysieren. Wenn die Seite in den Browser geladen wird, treten Weiterleitungen auf, ohne dass der Benutzer dies bemerkt. In diesem Fall kann die Option –location hilfreich sein , die cURL anweist , bis zur letzten Umleitung durchzuhalten . Hier verwenden wir die Option –head, da uns der Inhalt der Seiten nicht interessiert.
# Comprobar redireccionamientos url="google.com" curl --location --head "$url"
Anstelle der Option ? Ort können Sie auch die entsprechende Schreibweise -L ( Großbuchstabe l ) verwenden.
Verschieben Sie Daten mit cURL auf den Server
Neben dem Zugriff auf Daten können Sie mit cURL auch Daten an einen Server senden . Dies ist beispielsweise sehr praktisch, wenn wir das automatische Ausfüllen eines Online-Formulars automatisieren möchten. Neben der POST-Anforderungsmethode unterstützt cURL auch GET.
Da das Senden von Daten eine komplexere Aufgabe ist als der Zugriff darauf, können wir nur ein grobes Beispiel skizzieren. Weitere Informationen finden Sie in den Tipps zu “Everything Curl”.
# Transferir datos al servidor url="example.com" # Introduce los datos como pares de valores clave separados por ?&? datos="nombre=Pedro&apellido=González&edad=42" # Esta ejecución cURL transfiere los datos mediante POST curl --data "$datos" "$url" # Alternativamente, indica a cURL que transfiera los datos mediante GET curl --data "$datos" "$url" --get
Lesen Sie Cookies mit cURL
HTTP-Cookies sind kleine Textdateien, die beim Besuch der meisten Websites lokal auf dem Gerät des Benutzers gespeichert werden. In Ihrem Browser können Sie die Cookies jeder von Ihnen besuchten Seite sehen und löschen . Wenn Sie jedoch Tests durchführen möchten, kann dies zu umständlich sein. Mit Curl und der Option –cookie-jar ( Cookie-Box auf Spanisch) können Sie auch direkt auf die Cookies zugreifen .
# Leer cookies url="www.google.com" cookies="cookies.txt" curl --head --cookie-jar "$cookies" "$url" # Mostrar cookies con el comando cat cat "$cookies"
Mit der Option –cookie können Sie cURL auch anweisen , Cookies zu senden .
Allgemeine Optionen
Einige der verfügbaren cURL-Optionen können mit den bereits erwähnten kombiniert werden.
Zusätzliche Informationen anzeigen
In einigen Fällen reichen die bei der Ausführung eines cURL-Befehls dargestellten Informationen nicht aus. Sie können dann die Option –verbose verwenden . Ein cURL-Befehl , der diese Option enthält, liefert eine größere Menge an Informationen .
# Mostrar información adicional url="www.google.com" curl --verbose -I "$url"
Geben Sie mit cURL Benutzername und Passwort ein
Einige URLs werden mit HTTP-Authentifizierung verschlüsselt , um unbefugten Zugriff zu verhindern. Was passiert, wenn Sie versuchen, diese Art von URL zu cURLEN? Wenn Sie den Benutzernamen und das Kennwort nicht eingeben, wird der HTTP 401-Fehler auf dem Bildschirm angezeigt. In diesem Fall sollten Sie das folgende Schema verwenden:
# Introducir usuario y contraseña con cURL # URL protegido por contraseña url="www.example.com/secure/" # Usuario usuario="" # Contraseña contraseña="" curl --user "${nutzer}:${passwort}" "$url"
Sie können Curl auch verwenden, um auf Daten von einem FTP-Server zuzugreifen. Verwenden Sie die Option –user , um einen Benutzernamen und ein Kennwort anzugeben.
Verwenden Sie einen Proxy mit cURL
Ein Proxy ist ein Zwischenserver. Die Verwendung eines Proxys kann aus mehreren Gründen nützlich sein. Der Proxy erleichtert beispielsweise das Erfüllen bestimmter Sicherheits- und Leistungsanforderungen.
Wenn Sie über einen Proxy eine Verbindung zum Internet herstellen , müssen Sie cURL informieren. Dazu müssen Sie die Option –proxy verwenden :
# Utilizar un proxy con cURL url="www.google.com" proxy="proxy.example.com" port="8080" curl --proxy "${proxy}:${port}" "$url"
Wenn Sie den Benutzernamen und das Kennwort auf dem Proxyserver eingeben müssen , verwenden Sie die Option –proxy-user . Geben Sie in diesem Fall den Benutzernamen und das Passwort im Format “Benutzer: Passwort” ein.