paint-brush
Eine Einführung in cURL: Der beliebteste HTTP-Clientvon@brightdata
420 Lesungen
420 Lesungen

Eine Einführung in cURL: Der beliebteste HTTP-Client

von Bright Data6m2024/07/29
Read on Terminal Reader

Zu lang; Lesen

CURL ist ein Befehlszeilentool und eine Bibliothek namens libcurl, die Funktionen wie SSL-Unterstützung, Proxy-Tunneling, Header-Konfiguration und Cookie-Verwaltung bietet. cURL ist unter Linux, macOS und Windows vorinstalliert und ist somit das bevorzugte Tool für Webanforderungen in der Befehlszeile.
featured image - Eine Einführung in cURL: Der beliebteste HTTP-Client
Bright Data HackerNoon profile picture
0-item

Halten Sie Ihre Tastaturen fest, Webentwickler! Wenn Ihr Toolkit nicht über cURL verfügt, entgeht Ihnen möglicherweise eines der leistungsstärksten Tools überhaupt. cURL ist nicht nur ein CLI-basierter HTTP-Client – es ist ein HTTP-Client für die Befehlszeile!


Begleiten Sie uns auf einer Reise ins Herz von cURL, wo wir seine Geheimnisse lüften, seine Fähigkeiten erkunden und Ihnen das Wissen vermitteln, um es wie ein Profi zu nutzen. Sind Sie bereit, die wahre Kraft von cURL zu entfesseln? Los geht‘s!

Was ist cURL?

cURL , kurz für „Client for URLs“, ist ein Softwareprojekt, das ein Kommandozeilentool und eine Bibliothek namens libcurl umfasst. Dieses Duo ist auf Datenübertragung mit URL-Syntax über ein Spektrum von Netzwerkprotokollen spezialisiert. libcurl bietet außerdem Funktionen wie SSL-Unterstützung, Proxy-Tunneling, Header-Konfiguration und Cookie-Verwaltung.


Das Durchforsten der vollständigen Liste der von libcurl unterstützten Protokolle fühlt sich an wie das Navigieren durch eine digitale Buchstabensuppe. Dazu gehören HTTP, HTTPS, FTP, SFTP, IMAP, POP3, SMTP, MQTT und Dutzende andere. Die Liste ist so lang, dass Sie von einigen davon vielleicht noch nie gehört haben – keine Sorge, Sie sind nicht allein, wenn das der Fall ist! 😜


Warum hat cURL unter Entwicklern Rockstar-Status erlangt? Das liegt an seiner plattformübergreifenden Leistungsfähigkeit! Da libcurl-Bindings in so vielen Programmiersprachen verfügbar sind – denken Sie an PHP, Python und Java – lässt sich cURL nahtlos in verschiedene Tech-Stacks integrieren. Die Popularität liegt in seiner Allgegenwärtigkeit. cURL ist unter Linux, macOS und Windows vorinstalliert und damit das bevorzugte Tool für Webanforderungen im Terminal auf jedem Computer, direkt nach dem Auspacken.


Ob beim Abrufen von Webinhalten, Testen von APIs oder Hochladen von Dateien: cURL ist ein unverzichtbares Tool im Toolkit eines jeden Webentwicklers. Nichts kann mit seiner beispiellosen Flexibilität und Effizienz mithalten. 🚀

cURL in Aktion: Syntax und Beispiele

Sie haben also cURL in Ihrem Toolkit, aber wie verwenden Sie es? Ganz einfach! Starten Sie in Ihrem Terminal einen Befehl mit der folgenden Syntax:

 curl [options] [URL]

URL ist das Ziel, d. h. der Online-Server oder die Ressource, auf die Sie abzielen. Einige gängige cURL-Optionen sind:

  • -X oder --request : Um die zu verwendende HTTP-Methode festzulegen.

  • -d oder --data : Um Daten zum Text Ihrer Anfrage hinzuzufügen.

  • -b oder --cookie : Zum Verwalten von Cookies für Ihre Anfragen.

  • -H oder --header : Um Ihren Anfragen einen benutzerdefinierten Header hinzuzufügen. Bei mehreren Headern wiederholen Sie die Optionen mehrmals. Standardmäßig GET .

  • -v oder --verbose : Zum Drucken detaillierter Informationen zum Debuggen.


Um alle verfügbaren Optionen kennenzulernen, sieh dir die Dokumentation an 🔎


⚠️ Hinweis 1 : Achtung, die Befehlszeilenoptionen curl sind empfindlich. Daher haben -x und -X zwei verschiedene Bedeutungen.


⚠️ Hinweis 2 : In PowerShell ist curl ein Alias für Invoke-Request . Um cURL unter Windows zu verwenden, schreiben Sie curl.exe statt curl .


Machen Sie sich jetzt bereit, die cURL-Syntax in Aktion in realen Beispielen zu sehen, die nach HTTP-Methoden kategorisiert sind!

ERHALTEN

So verwenden Sie cURL, um den HTML-Quellcode einer Zielwebseite abzurufen:

 curl "https://example.com/"


Im Hintergrund führt cURL eine GET-Anfrage aus, ruft das mit der Webseite https://example.com/ verknüpfte HTML-Dokument ab und druckt es im Terminal aus.


Sie haben gerade mit einem einzigen Befehl Informationen abgerufen. Beeindruckend, nicht wahr? 🔥

POST

Das folgende cURL-POST-Beispiel ruft den Endpunkt https://api.example.com/users mit den JSON-Daten auf, die zum Erstellen eines neuen Benutzers erforderlich sind:

 curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' "https://api.example.com/users"


Beachten Sie die Option -X , um die gewünschte HTTP-Methode anzugeben. Achten Sie auch auf die Verwendung der Option -H , die den Content-Type Header festlegt, und der Option -d , die die JSON-Rohdaten in einer Zeichenfolge angibt. Sehen Sie sich einen speziellen Leitfaden für cURL-POST-Anfragen an!

SETZEN

cURL PUT-Aufrufe befolgen die folgende Syntax:

 curl -X PUT -d "name=Amazon%20Scraping&description=Automated%20data%20extraction%20for%20retrieving%20price%20data&status=completed" "https://api.example.com/projects/12"


Die HTTP-Anfrage aktualisiert das Projekt mit der ID 12 unter Verwendung der bereitgestellten Daten. In diesem Beispiel liegen die Daten im Anfragetext im Format application/x-www-form-urlencoded vor, im Gegensatz zum JSON-Text, der im obigen cURL-POST-Aufruf verwendet wurde. Diese Flexibilität bei den Datenformaten zeigt die Anpassungsfähigkeit von cURL für verschiedene Anwendungsfälle.

PATCH

Möchten Sie eine PUT-Anfrage in cURL ausführen, um ein einzelnes Feld einer Online-Ressource zu aktualisieren? So können Sie das tun:

 curl -X PATCH -d "status=failed" "https://api.example.com/projects/12"

LÖSCHEN

Mit cURL können Sie DELETE-Anfragen stellen und die Existenz vorhandener Entitäten wie folgt löschen:

 curl -X DELETE https://api.example.com/user/431


Nach diesem API-Aufruf existiert der Benutzer mit der ID 431 nicht mehr!

Erweiterte cURL-Optionen

cURL bietet eine Vielzahl von Optionen, von denen jede eine einzigartige Funktion für komplexe Anwendungsfälle bietet. Wenn Sie durch dieses Universum navigieren, fallen bestimmte erweiterte Optionen auf. Hier sind die 10 nützlichsten erweiterten cURL-Optionen:


  • -o oder --output : Um die Ausgabe in die angegebene lokale Datei statt in<stdoud> zu schreiben.
  • -O oder --remote-name : Um die Ausgabe in einer Remote-Datei zu speichern.
  • -i oder --include : Um die HTTP-Antwortheader in die Ausgabe einzuschließen.
  • -u oder --user : Zur Authentifizierung mit einem Benutzernamen und einem Passwort im Format user:password .
  • -L oder --location : Um den Weiterleitungen zu folgen, wenn der Server mit einem 3XX Antwortcode antwortet.
  • -e oder --referer : Um die Informationen zur „Referrer-Seite“ an den HTTP-Server zu senden.
  • -x oder --proxy : Um die URL des Proxyservers anzugeben, über den die Anfrage erfolgen soll. Weitere Informationen finden Sie in unserem Tutorial zur Verwendung von cURL mit einem Proxy oder im folgenden Video.
  • --rate : Hiermit geben Sie die maximale Übertragungsfrequenz an, die cURL einhalten soll, um das Auslösen von Maßnahmen zur Geschwindigkeitsbegrenzung zu vermeiden.
  • --data-binary : Um die Daten genau wie angegeben an den Server zu senden, ohne jegliche zusätzliche Verarbeitung.
  • --compressed : Um eine komprimierte Antwort anzufordern und den Antwortinhalt automatisch zu dekomprimieren.


Die Beherrschung dieser Optionen ermöglicht Ihnen die Verwendung von cURL mit beispielloser Finesse im sich ständig weiterentwickelnden Bereich der Webinteraktionen. 🌐

So holen Sie das Beste aus cURL heraus

cURL ist ein Kraftpaket für Webanfragen, aber seine Standardkonfiguration macht es anfällig für Anti-Bot-Maßnahmen. Betrachten Sie beispielsweise den standardmäßigen User-Agent Header:

 curl/XYZ


Erfahren Sie, wie Sie den cURL-Benutzeragentenwert ändern .


Vergleichen Sie das nun mit dem neuesten Benutzeragent von Chrome:

 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Das ist eine ganz andere Saite!


Die Verwendung von cURL ohne Überschreiben dieses Headers ist so, als würde man dem Zielserver zuschreien: „Seht mich an! Ich bin eine automatisierte, nicht vom Browser stammende Roboteranfrage!“

Kein Wunder, das kann Abwehrmechanismen auslösen 😅. Vergessen Sie auch nicht, dass cURL nur ein HTTP-Client ist. Daher kann es nicht mit Seiten umgehen, die für das Rendering oder den Datenabruf auf JavaScript angewiesen sind.


👎Das ist schlecht, wenn Sie cURL für Web Scraping verwenden möchten!👎


Sollten Sie also aufhören, cURL zu verwenden? Keineswegs! Sie müssen es nur mit den richtigen Tools ausstatten! Um das volle Potenzial von cURL auszuschöpfen und seine Einschränkungen zu beheben, integrieren Sie es entweder mit einem:


  • Webproxy : Um bei jeder Anfrage eine neue, geolokalisierte und vertrauenswürdige IP-Adresse zu erhalten; oder ein
  • Tool zum Entsperren des Webs : Um auf öffentliche Statistiken oder JavaScript-abhängige Webseiten zuzugreifen und gleichzeitig Bot-Erkennungstechnologien zu umgehen.


Wie auch immer Sie sich entscheiden, Bright Data ist für Sie da! Bright Data verfügt über eines der größten und zuverlässigsten Proxy-Netzwerke auf dem Markt und Millionen von Proxy-Servern auf der ganzen Welt. Darüber hinaus können Sie mit der Web Unlocker- Lösung über cURL auf jede öffentliche Website zugreifen, unabhängig von deren Bot-Schutzstufe.

Abschluss

cURL, der Rockstar unter den HTTP-Clients, ist das Tool der Wahl für Entwickler, die Webanfragen im Terminal stellen. Sie haben nun die Verwendung mit gängigen HTTP-Methoden gemeistert und die vielfältigen Optionen erkundet. Dies ist ein leistungsstarkes Tool, aber seien wir ehrlich: Die meisten Websites können erkennen, dass Sie sie über cURL kontaktieren.


Keine Angst! Das Gegenmittel ist einfach: Nutzen Sie die Hilfe eines Webproxys oder nutzen Sie für optimale Ergebnisse die Web Unlocker-Lösung von Bright Data . Unterstützen Sie uns bei unserer Mission, das Internet zu demokratisieren und es für alle überall zugänglich zu machen – sogar über das mächtige cURL!


Bis zum nächsten Mal und erkunden Sie das Internet weiterhin frei!