cURL ist ein Befehlszeilentool zum Abrufen oder Senden von Daten mit Hilfe der URL-Syntax.

Wenn Sie als Entwickler oder im Support arbeiten, müssen Sie die Verwendung von cURL-Befehlen kennen, um Fehler in Webanwendungen zu beheben. cURL ist ein plattformübergreifendes Dienstprogramm, d.h. Sie können es unter Windows, MAC und UNIX verwenden.

Im Folgenden finden Sie einige der am häufigsten verwendeten Syntaxen mit einem Beispiel, das Ihnen helfen soll.

Überprüfen Sie, ob Sie eine Verbindung zur URL herstellen können

Wenn Sie auf einem UNIX-System arbeiten und versuchen, eine Verbindung zu einer externen URL herzustellen, sollten Sie zunächst überprüfen, ob Sie über curl auf die URL zugreifen können.

curl yoururl.com

Es wird keine Ausgabe geworfen. Wenn der Server jedoch keine Verbindung herstellen kann, erhalten Sie Fehlermeldungen wie could not resolve the host.

[root@gf-lab tmp]# curl helloitdoesntexist.com
curl: (6) Konnte den Host nicht auflösen: helloitdoesntexist.com; Unbekannter Fehler
[root@gf-lab tmp]#

URL/URI-Ausgabe in Datei speichern

Wenn Sie den Inhalt der URL oder URI in einer bestimmten Datei speichern müssen, können Sie die folgende Syntax verwenden

curl https://yoururl.com > ihreurl.html

ex:

[root@gf-lab tmp]# curl https://gf.dev > /tmp/gfhtml
  % Total % Received % Xferd Durchschnittliche Geschwindigkeit Zeit Zeit Zeit Aktuell
                                 Dload Upload Total Verbraucht Linke Geschwindigkeit
100 18557 0 18557 0 0 72565 0 --:--:-- --:--:-- --:--:-- 72772
[root@gf-lab tmp]#

Das obige Beispiel speichert den gesamten Inhalt von gf.dev nach /tmp/gf.html

Anfrage- und Antwort-Header anzeigen

Wenn Sie Probleme haben und überprüfen möchten, ob Sie den erwarteten Request- und Response-Header erhalten.

curl -v yoururl.com

Bsp:

[root@gf-lab tmp]# curl -v https://geekflare.com/de
* Verbindung() zu geekflare.com/de Port 443 (#0)
*   Versucht 104.25.134.107...
* Verbunden mit geekflare.com/de (104.25.134.107) Port 443 (#0)
* Initialisierung von NSS mit certpath: sql:/etc/pki/nssdb
*   CA-Datei: /etc/pki/tls/certs/ca-bundle.crt
  CA-Pfad: keine
* SSL-Verbindung mit TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Server-Zertifikat:
* 	betreff: CN=ssl371609.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated
* 	startdatum: Nov 07 00:00:00 2019 GMT
* 	ablaufdatum: May 15 23:59:59 2020 GMT
* 	gemeinsamer Name: ssl371609.cloudflaressl.com
* 	aussteller: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB
> GET / HTTP/1.1
> Benutzer-Agent: curl/7.29.0
> Gastgeber: geekflare.com/de
> Akzeptieren: */*
> 
< HTTP/1.1 200 OK
< Datum: Sat, 09 Nov 2019 19:41:37 GMT
< Inhalt-Typ: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Verbindung: keep-alive
< Set-Cookie: __cfduid=d2ce6cd359ebc0b6eb5ff3a454ed042021573328497; expires=Sun, 08-Nov-20 19:41:37 GMT; path=/; domain=.geekflare.com/de; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://geekflare.com/de/wp-json/>; rel="https://api.w.org/"
< Link: <https://geekflare.com/de/>; rel=shortlink
< X-SRCache-Fetch-Status: HIT
< X-SRCache-Store-Status: BYPASS
< X-Frame-Options: SAMEORIGIN
< X-Powered-By: EasyEngine v4.0.12
< Via: 1.1 google
< CF-Cache-Status: DYNAMIC
< Strict-Transport-Security: max-age=15552000; preload
< X-Content-Type-Options: nosniff
< Alt-Svc: h3-23=":443"; ma=86400
< Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< Server: cloudflare
< CF-RAY: 533243e4bcd4bbf4-LHR
<

Download mit begrenzter Rate

Wenn Sie an der Optimierung arbeiten und sehen möchten, wie viel Zeit der Download bei einer bestimmten Geschwindigkeit benötigt, können Sie:-

curl --limit-rate 2000B

Beispiel:

curl --limit-rate 2000B https://gf.dev

Verwenden eines Proxys für die Verbindung

Sehr praktisch, wenn Sie auf einem DMZ-Server arbeiten und sich über einen Proxy mit der Außenwelt verbinden müssen.

curl --proxy ihrproxy:port https://yoururl.com

Test-URL mit eingefügtem Header

Sie können curl verwenden, indem Sie einen Header mit Ihren Daten einfügen, um ein bestimmtes Problem zu testen oder zu beheben. Sehen wir uns das folgende Beispiel für eine Anfrage mit Content-Type an.

curl --header 'Content-Type: application/json' http://yoururl.com

Damit fordern Sie curl auf, den Content-Type als application/json im Header der Anfrage zu übergeben.

Nur Antwort-Header anzeigen

Wenn Sie eine Fehlersuche durchführen und schnell den Antwort-Header überprüfen möchten, können Sie die folgende Syntax verwenden.

curl --head http://yoururl.com

Beispiel:

[root@gf-lab tmp]# curl --head https://chandan.io
HTTP/1.1 200 OK
Date: Sat, 09 Nov 2019 19:51:23 GMT
Inhalt-Typ: text/html
Verbindung: keep-alive
Set-Cookie: __cfduid=d3cb2c7b8e566ad99c870b0af12b0f1eb1573329083; expires=Sun, 08-Nov-20 19:51:23 GMT; path=/; domain=.chandan.io; HttpOnly
X-GUploader-UploadID: AEnB2Uo96JhvJmR2zYUL-Ndh2ta3UD_ykQAB5C7O8cjZQhCf-GxHQ0MsodSzRnl3guSN3ywAYNjtWcPXfwDXjLg3bQ-P5vQMOA
Läuft ab: Sat, 09 Nov 2019 20:51:23 GMT
Cache-Kontrolle: öffentlich, max-age=3600
Last-Modified: Mon, 06 Aug 2018 10:45:47 GMT
x-goog-generation: 1533552347482034
x-goog-metageneration: 1
x-goog-stored-content-encoding: Identität
x-goog-stored-content-length: 24620
x-goog-hash: crc32c=DpDPAQ==
x-goog-hash: md5=cIP/3rusdUx12Zla1kf1yA==
x-goog-storage-class: MULTI_REGIONAL
Accept-Ranges: bytes
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 53325234dc2fbb9a-LHR

[root@gf-lab tmp]#

Verbinden Sie die HTTPS/SSL-URL und ignorieren Sie jeden SSL-Zertifikatsfehler

Wenn Sie versuchen, auf eine mit einem SSL/TLS-Zertifikat gesicherte URL zuzugreifen und diese das falsche Zertifikat hat oder der CN nicht übereinstimmt, erhalten Sie folgende Fehlermeldung.

curl: (51) Sichere Kommunikation mit der Gegenstelle nicht möglich: Der angeforderte Domainname stimmt nicht mit dem Zertifikat des Servers überein.

Die gute Nachricht: Sie können cURL anweisen, den Zertifikatsfehler mit dem Flag --insecure zu ignorieren.

curl --unsicher https://yoururl.com

Verbindung über ein bestimmtes Protokoll herstellen (SSL/TLS)

Sehr praktisch, um zu testen, ob eine bestimmte URL über ein bestimmtes SSL/TLS-Protokoll verbunden werden kann.

Um eine Verbindung über SSL v3 herzustellen

curl --sslv3 https://yoururl.com

und für verschiedene TLS-Versionen

curl --tlsv1 https://example.com
curl --tlsv1.0 https://example.com
curl --tlsv1.1 https://example.com
curl --tlsv1.2 https://example.com
curl --tlsv1.3 https://example.com

Datei von einem FTP-Server herunterladen

Sie können curl auch zum Herunterladen der Datei verwenden, indem Sie Ihren Benutzernamen und Ihr Passwort angeben.

curl -u benutzer:passwort -O ftp://ftpurl/style.css

Sie können immer“-v” mit jeder Syntax verwenden, um im ausführlichen Modus zu drucken.

Host-Header verwenden

Der Host-Header ist nützlich, um die Ziel-URL über IP zu testen, wenn der angeforderte Inhalt nur verfügbar ist, wenn der Host-Header übereinstimmt. Oder wenn Sie die Anwendung unter Verwendung der Load Balancer IP/URL testen möchten.

curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/

Wie wäre es, cURL online zu verwenden?

Ja, das ist mit den folgenden Tools möglich. Sie können cURL aus der Ferne ausführen.

Online CURL – ein leichtgewichtiges Tool, um die URL online abzurufen und die Möglichkeit, die folgenden Optionen hinzuzufügen.

--Verbindungszeitüberschreitung
--cookie
--data
--Header
--kopf
--location
--max-time
--proxy
--request
--user
--url
--benutzer-agent
 

cURL-Befehlszeilen-Builder – dieser ist anders. Er hilft Ihnen bei der Erstellung des cURL-Befehls, in den Sie in einer schönen Benutzeroberfläche Informationen eingeben können, und am Ende erhalten Sie den cURL-Befehl.

curl-builder

cURL ist ein nützliches Dienstprogramm für die Fehlersuche bei Echtzeit-Verbindungsproblemen und ich hoffe, dass Ihnen die obigen Ausführungen helfen. Wenn Sie mehr lernen möchten, empfehle ich Ihnen den Online-Kurs Linux Command Line Basics.