So beginnen Sie mit Curl und warum: eine praktische Einführung

Unabhängig davon, ob die Ausgabe einer API vor der Bereitstellung in der Produktion getestet oder einfach eine Antwort von einer Website abgerufen wird (um beispielsweise zu überprüfen, ob sie nicht inaktiv ist), ist Curl praktisch allgegenwärtig.

Als Data Scientist musste ich es von Zeit zu Zeit verwenden. Meistens ersetzte ich jedoch nur Parameter aus einem kopierten und eingefügten Curl-Befehl, der den Slack-Kanal meines Teams umgab.

Ich entschied, dass ich dieses leistungsstarke Tool besser verstehen musste, wenn ich es voll ausschöpfen wollte, und jetzt bin ich hier, um einige der interessantesten Dinge zu teilen, die ich in diesem Curl-Tutorial gefunden habe.

Wenn Sie Tipps oder Tricks haben, die Sie hinzufügen möchten, tun Sie dies bitte in den Kommentaren, da sich mein Verständnis dieses Tools noch in einem frühen Stadium befindet.

Curl: Wofür ist es gut?

Curl ist ein Befehlszeilentool, mit dem wir HTTP-Anforderungen von der Shell aus ausführen können. Es werden auch viele andere Protokolle wie FTP behandelt, die jedoch den Rahmen dieses Lernprogramms sprengen.

Der Name steht für "Client URL" und wurde vom schwedischen Entwickler Daniel Stenberg entwickelt. Es ist ein Open-Source-Projekt, und sein Code finden Sie hier, falls Sie einen Beitrag leisten möchten.

Sie können es von Ihrem bevorzugten Terminal aus aufrufen und es ist normalerweise in Linux-basierten Betriebssystemen vorinstalliert. Andernfalls kann es in der Regel durch heruntergeladen werden apt-get auf Linux, und brauen auf dem Mac.

Aufrufen einer GET-Methode

In seiner einfachsten Form sieht ein Curl-Befehl folgendermaßen aus:

curl //www.dataden.tech

Das Standardverhalten für Curl ist das Aufrufen einer HTTP-GET-Methode für die angegebene URL. Auf diese Weise ist die Programmausgabe für diesen Befehl der gesamte Text der HTTP-Antwort (in diesem Fall HTML), den die Site auf einem GET zurückgibt, der wie auf stdout angegeben geschrieben wird .

Wenn Sie eine Antwort lesen möchten, ohne die Shell zu verlassen, würde ich empfehlen, sie zumindest in einen weniger Befehl umzuwandeln, um problemlos durch die Ausgabe scrollen zu können.

Oft möchten wir den Inhalt der Antwort in eine Datei leiten. Dies geschieht mit dem Argument -o wie folgt :

curl -o output.html www.dataden.tech

was äquivalent ist zu:

curl www.dataden.tech > output.html

Optional können Sie die URL der Site, für die Sie curl aufrufen möchten, mit einem -s- Argument wie folgt angeben :

curl -s //www.dataden.tech

So können Sie die Reihenfolge Ihrer Argumente ändern.

Sie können auch –next verwenden , um mehr als eine URL anzugeben. Das offizielle Dokument empfiehlt jedoch, stattdessen curl für jede URL in einem anderen Befehl aufzurufen.

POST an eine URL senden

Manchmal möchten Sie testen, ob eine API ordnungsgemäß funktioniert. In der Regel müssen dafür Argumente gesendet werden.

Normalerweise führen wir dies über die POST-Methode durch und übergeben JSON mit allen erforderlichen Parametern. Es gibt viele Möglichkeiten, dies mit Locken zu tun.

Sie können die Werte Ihrer Argumente folgendermaßen übergeben:

curl --data "name=John&surname=Doe" //www.dataden.tech

Oder wie ein normaler JSON:

curl --data '{"name":"John","surname":"Doe"}' \//www.dataden.tech

Die Verwendung von –data entspricht der Verwendung von -d. In beiden Fällen wird die Methode automatisch in POST geändert. Wir können jedoch auch das Flag -X ( –request ) verwenden, um anzugeben, welche Methode wir aufrufen möchten:

curl -X "POST" \-d "name=John&surname=Doe" //www.example.com

Abrufen der Header der Site

Manchmal müssen wir nur schnell feststellen, ob die Site noch aktiv ist, ohne wirklich die gesamte, möglicherweise schwere Antwort laden zu wollen. In anderen Fällen speichern die Header wichtige Konfigurationen.

Diese beiden Anwendungsfälle werden auch durch Curl angesprochen. Wir können den Parameter –include ( -i ) verwenden, um die Header einzuschließen , und –head ( -I - das ist das Kapital 'i'-), um nur die Header einzuschließen (Aufruf der HEAD-Methode).

Festlegen Ihres User-Agent-Werts

Nachdem ich die Grundlagen behandelt habe, möchte ich Sie durch einige der coolsten Dinge führen, die wir mit Locken tun können.

Mit dem User-Agent- Argument können Sie angeben, welche Geräte- und Browserversionen Sie verwenden, falls die Site dadurch anders gerendert wird.

Auf diese Weise können Sie die mobile Version einer Site von Ihrem Laptop aus anzeigen oder umgekehrt.

Unter Sicherheitsgesichtspunkten wirft dies wahrscheinlich einige Probleme auf. Ich wusste bis jetzt nicht, wie einfach es ist, vorzugeben, ein anderes Gerät zu verwenden (ohne auch nur eine virtuelle Maschine zu verwenden), und bei der Arbeit in Fraud Prevention kann ich erkennen, warum dies ein Problem sein könnte.

Solange Sie dies für immer verwenden, ist dies eine großartige Möglichkeit, um zu sehen, wie eine Website von einem Tablet, einem mobilen Gerät oder einem Laptop aus aussieht, um nur einige zu nennen.

Hier ist ein Beispiel direkt aus der offiziellen Dokumentation (obwohl Listen von Benutzeragenten online verfügbar sind).

curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" www.example.com

Timing einer Verbindung mit Curl

Ein weiterer Grund, warum ich mehr über Curl gelernt habe, war, dass ich sehen wollte, wie lange es genau gedauert hat, bis meine Website reagiert hat.

Obwohl die grundlegende Dokumentation dies nicht behandelt, wurde dieser Befehl durch ein wenig googeln aufgedeckt, was ich sehr nützlich fand:

curl -w "%{time_total}\n" -o /dev/null -s www.example.com

Dadurch wird einfach die Gesamtzeit ausgegeben, die zum Abrufen der Antwort von der angegebenen Domäne benötigt wurde.

Im Allgemeinen verwendet das Argument -w (–write-out) eine spezielle Formatierungszeichenfolge und füllt reservierte Schlüsselwörter mit unterschiedlichen Eigenschaften der Antwort formatiert aus. Alle Schlüsselwörter und ihre jeweiligen Werte sind auf der Manpage des Befehls verfügbar.

Weiterführende Literatur

Hier sind einige Links, die Sie vielleicht interessant finden, falls Sie mehr über dieses breite Thema erfahren möchten:

  • Liste der Benutzeragenten Eine Zusammenstellung von Benutzeragentenargumenten für verschiedene Geräte und Browser.
  • Curls offizielle Dokumentation.
  • Curls Manpage.

Schlussfolgern

Ich hoffe, Sie fanden diese Einführung hilfreich und verlassen dieses Tutorial, um zumindest die Grundlagen dieses praktischen Befehls zu kennen.

Wie ich bereits sagte, lerne ich immer noch und werde mich über weitere interessante Kenntnisse über die Verwendung des Programms freuen. Gleiches gilt für alle Rückmeldungen zu dem, was ich bisher geschrieben habe.

Wenn ich Fehler gemacht habe oder einen Teil Ihrer Meinung nach klarer hätte formulieren können, lassen Sie es mich bitte wissen.

Ich hoffe wir sehen uns bald wieder, viel Spaß beim Codieren!

Folgen Sie mir auf Medium und Twitter, um über meine Tutorials, Tipps und Artikel auf dem Laufenden zu bleiben. Erwägen Sie, diesen Artikel mit einem Freund eines Webentwicklers zu teilen, wenn Sie ihn mögen (oder als passive aggressive Methode, um ihnen zu sagen, dass sie Curl lernen sollen).

Ursprünglich veröffentlicht am 7. Oktober 2018 unter www.dataden.tech.