cURL ist ein Befehlszeilentool zum Abrufen oder Senden von Daten mithilfe der URL-Syntax.
Wenn Sie als Entwickler oder in der Supportfunktion arbeiten, müssen Sie sich der Verwendung von cURL-Befehlen zur Fehlerbehebung bei Webanwendungen bewusst sein. cURL ist ein plattformübergreifendes Dienstprogramm, das Sie unter Windows, MAC und UNIX verwenden können.
Im Folgenden finden Sie einige der am häufigsten verwendeten Syntaxen mit einem Beispiel, das Ihnen helfen soll.
Inhaltsverzeichnis
Überprüfen Sie, ob Sie eine Verbindung zur URL herstellen können
Wenn Sie auf einem UNIX-System arbeiten und versuchen, die externe URL zu verbinden, sollten Sie zunächst prüfen, ob Sie über curl auf die URL zugreifen können.
curl yoururl.com
Es wird keine Ausgabe ausgelöst. Wenn der Server jedoch keine Verbindung herstellen kann, erhalten Sie Fehler wie „konnte den Host nicht auflösen“.
[[email protected] tmp]# curl helloitdoesntexist.com curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error [[email protected] tmp]#
URL/URI-Ausgabe in Datei speichern
Wenn Sie den URL- oder URI-Inhalt in einer bestimmten Datei speichern müssen, können Sie die folgende Syntax verwenden
curl https://yoururl.com > yoururl.html
ex:
[[email protected] tmp]# curl https://gf.dev > /tmp/gfhtml % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18557 0 18557 0 0 72565 0 --:--:-- --:--:-- --:--:-- 72772 [[email protected] tmp]#
Das obige Beispiel speichert den gesamten Inhalt von gf.dev in /tmp/gf.html
Anfrage- und Antwort-Header anzeigen
Wenn Sie Probleme haben und validieren möchten, erhalten Sie den erwarteten Anforderungs- und Antwortheader.
curl -v yoururl.com
Ex:
[[email protected] tmp]# curl -v https://wdzwdz.com * About to connect() to wdzwdz.com port 443 (#0) * Trying 104.25.134.107... * Connected to wdzwdz.com (104.25.134.107) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 * Server certificate: * subject: CN=ssl371609.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated * start date: Nov 07 00:00:00 2019 GMT * expire date: May 15 23:59:59 2020 GMT * common name: ssl371609.cloudflaressl.com * issuer: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: wdzwdz.com > Accept: */* > < HTTP/1.1 200 OK < Date: Sat, 09 Nov 2019 19:41:37 GMT < Content-Type: text/html; charset=UTF-8 < Transfer-Encoding: chunked < Connection: keep-alive < Set-Cookie: __cfduid=d2ce6cd359ebc0b6eb5ff3a454ed042021573328497; expires=Sun, 08-Nov-20 19:41:37 GMT; path=/; domain=.wdzwdz.com; HttpOnly; Secure < Vary: Accept-Encoding < Link: <https://wdzwdz.com/wp-json/>; rel="https://api.w.org/" < Link: <https://wdzwdz.com/>; 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 <
Laden Sie mit einer begrenzten Rate herunter
Wenn Sie an der Optimierung arbeiten und sehen möchten, wie lange das Herunterladen mit einer bestimmten Geschwindigkeit dauert, können Sie:-
curl –-limit-rate 2000B
Ex:
curl –-limit-rate 2000B https://gf.dev
Verwenden eines Proxys zum Verbinden
Sehr praktisch, wenn Sie auf dem DMZ-Server arbeiten, wo Sie sich über einen Proxy mit der Außenwelt verbinden müssen.
curl --proxy yourproxy:port https://yoururl.com
Sie können curl verwenden, indem Sie einen Header mit Ihren Daten einfügen, um das jeweilige Problem zu testen oder zu beheben. Sehen wir uns das folgende Beispiel zum Anfordern mit Content-Type an.
curl --header 'Content-Type: application/json' http://yoururl.com
Auf diese Weise bitten Sie curl, Content-Type als application/json im Anforderungsheader zu übergeben.
Wenn Sie eine Fehlerbehebung durchführen und den Antwortheader schnell überprüfen möchten, können Sie die folgende Syntax verwenden.
curl --head http://yoururl.com
Ex:
[[email protected] tmp]# curl --head https://chandan.io HTTP/1.1 200 OK Date: Sat, 09 Nov 2019 19:51:23 GMT Content-Type: text/html Connection: 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 Expires: Sat, 09 Nov 2019 20:51:23 GMT Cache-Control: public, 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: identity 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 [[email protected] tmp]#
Verbinden Sie die HTTPS/SSL-URL und ignorieren Sie alle SSL-Zertifikatsfehler
Wenn Sie versuchen, auf eine mit SSL/TLS-Zertifikat gesicherte URL zuzugreifen, und wenn das falsche Zertifikat oder CN nicht übereinstimmt, erhalten Sie die folgende Fehlermeldung.
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
Gute Nachrichten, Sie können cURL anweisen, den Zertifikatsfehler mit dem Flag –insecure zu ignorieren.
curl --insecure https://yoururl.com
Verbindung über ein bestimmtes Protokoll (SSL/TLS)
Sehr praktisch, um zu testen, ob eine bestimmte URL ein bestimmtes SSL/TLS-Protokoll handshaken kann.
Um eine Verbindung mit SSL v3
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
Laden Sie die Datei vom FTP-Server herunter
Sie können die Datei auch mit curl herunterladen, indem Sie Ihren Benutzernamen und Ihr Passwort angeben.
curl -u user:password -O ftp://ftpurl/style.css
Sie können immer „-v“ mit jeder Syntax verwenden, um im ausführlichen Modus zu drucken.
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 mit Load Balancer IP/URL testen möchten.
curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/
Wie wäre es mit cURL online?
Ja, das ist mit den folgenden Tools möglich. Sie können cURL remote ausführen.
Online CURL – ein leichtes Tool, um die URL online abzurufen und die Möglichkeit, die folgenden Optionen hinzuzufügen.
--connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent
cURL-Befehlszeilen-Builder – dieser hier ist anders. Es hilft Ihnen, den Curl-Befehl zu erstellen, in dem Sie Informationen in eine nette Benutzeroberfläche eingeben können, und unten erhalten Sie den cURL-Befehl.
cURL ist ein nützliches Dienstprogramm zur Behebung eines Echtzeit-Verbindungsproblems, und ich hoffe, das oben Gesagte hilft Ihnen. Wenn Sie mehr erfahren möchten, dann würde ich empfehlen Grundlagen der Linux-Befehlszeile Online Kurs.