10 Χρήση εντολών cURL με Παράδειγμα σε πραγματικό χρόνο

Το cURL είναι ένα εργαλείο γραμμής εντολών για λήψη ή αποστολή δεδομένων χρησιμοποιώντας σύνταξη URL.

Εάν εργάζεστε ως προγραμματιστής ή στη λειτουργία υποστήριξης, πρέπει να γνωρίζετε τη χρήση εντολών cURL για την αντιμετώπιση προβλημάτων εφαρμογών web. Το cURL είναι ένα βοηθητικό πρόγραμμα πολλαπλών πλατφορμών που μπορείτε να χρησιμοποιήσετε σε Windows, MAC και UNIX.

Ακολουθούν μερικές από τις πιο χρησιμοποιούμενες συντακτικές με ένα παράδειγμα που θα σας βοηθήσει.

Επαληθεύστε εάν μπορείτε να συνδεθείτε στη διεύθυνση URL

Εάν εργάζεστε σε ένα σύστημα UNIX και προσπαθείτε να συνδέσετε την εξωτερική διεύθυνση URL, το πρώτο πράγμα που θέλετε να κάνετε είναι να ελέγξετε εάν μπορείτε να αποκτήσετε πρόσβαση στη διεύθυνση URL μέσω curl.

κουλουριάστε το yoururl.com

Δεν θα βγάλει καμία έξοδο. Ωστόσο, εάν ο διακομιστής δεν μπορεί να συνδεθεί, τότε θα λάβετε σφάλματα όπως δεν ήταν δυνατή η επίλυση του κεντρικού υπολογιστή.

[[email protected] tmp]# curl helloitdoesntexist.com
curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error
[[email protected] tmp]#

Αποθήκευση εξόδου URL/URI στο αρχείο

Εάν πρέπει να αποθηκεύσετε τη διεύθυνση URL ή το περιεχόμενο URI σε ένα συγκεκριμένο αρχείο, μπορείτε να χρησιμοποιήσετε την ακόλουθη σύνταξη

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

πρώην:

[[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]#

Το παραπάνω παράδειγμα θα αποθηκεύσει όλα τα περιεχόμενα από το gf.dev στο /tmp/gf.html

  Πώς να διορθώσετε ένα παγωμένο Mac

Εμφάνιση κεφαλίδας αιτήματος και απάντησης

Εάν αντιμετωπίζετε προβλήματα και θέλετε να επικυρώσετε, λαμβάνετε την αναμενόμενη κεφαλίδα αιτήματος και απάντησης.

curl -v yoururl.com

Πρώην:

[[email protected] tmp]# curl -v https://grtechpc.org.com
* About to connect() to grtechpc.org.com port 443 (#0)
*   Trying 104.25.134.107...
* Connected to grtechpc.org.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: grtechpc.org.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=.grtechpc.org.com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://grtechpc.org.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://grtechpc.org.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
<

Λήψη με οριακό ρυθμό

Εάν εργάζεστε στη βελτιστοποίηση και θέλετε να δείτε πόσος χρόνος χρειάζεται για τη λήψη με μια συγκεκριμένη ταχύτητα, μπορείτε:-

curl –-limit-rate 2000B

Πρώην:

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

Χρήση διακομιστή μεσολάβησης για σύνδεση

Πολύ βολικό εάν εργάζεστε στον διακομιστή DMZ όπου πρέπει να συνδεθείτε στον εξωτερικό κόσμο χρησιμοποιώντας έναν διακομιστή μεσολάβησης.

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

Μπορείτε να χρησιμοποιήσετε το curl εισάγοντας μια κεφαλίδα με τα δεδομένα σας για να δοκιμάσετε ή να αντιμετωπίσετε το συγκεκριμένο πρόβλημα. Ας δούμε το παρακάτω παράδειγμα για αίτημα με Content-Type.

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

Κάνοντας παραπάνω, ζητάτε από τον curl να περάσει το Content-Type ως εφαρμογή/json στην κεφαλίδα αιτήματος.

  Πώς να διορθώσετε αναξιόπιστη σύνδεση στο CSGO

Εάν κάνετε κάποια αντιμετώπιση προβλημάτων και θέλετε να ελέγξετε γρήγορα την κεφαλίδα απόκρισης, μπορείτε να χρησιμοποιήσετε την ακόλουθη σύνταξη.

curl --head http://yoururl.com

Πρώην:

[[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]#

Συνδέστε τη διεύθυνση URL HTTPS/SSL και αγνοήστε οποιοδήποτε σφάλμα πιστοποιητικού SSL

Όταν προσπαθείτε να αποκτήσετε πρόσβαση σε ασφαλές URL πιστοποιητικού SSL/TLS και εάν αυτό δεν ταιριάζει με το λάθος πιστοποιητικό ή το CN, τότε θα λάβετε το ακόλουθο σφάλμα.

curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

Καλά νέα, μπορείτε να δώσετε εντολή στο cURL να αγνοήσει το σφάλμα πιστοποιητικού με τη σημαία –insecure.

curl --insecure https://yoururl.com

Σύνδεση χρησιμοποιώντας ένα συγκεκριμένο πρωτόκολλο (SSL/TLS)

Πολύ βολικό για να ελέγξετε εάν μια συγκεκριμένη διεύθυνση URL μπορεί να κάνει χειραψία σε ένα συγκεκριμένο πρωτόκολλο SSL/TLS.

  Πώς να δείτε και να διαγράψετε το ιστορικό Netflix

Για να συνδεθείτε χρησιμοποιώντας SSL v3

curl --sslv3 https://yoururl.com

και για διαφορετικές εκδόσεις TLS

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

Λήψη αρχείου από τον διακομιστή FTP

Μπορείτε επίσης να χρησιμοποιήσετε το curl για τη λήψη του αρχείου, καθορίζοντας το όνομα χρήστη και τον κωδικό πρόσβασής σας.

curl -u user:password -O ftp://ftpurl/style.css

Μπορείτε πάντα να χρησιμοποιήσετε το “-v” με οποιαδήποτε σύνταξη για εκτύπωση σε αναλυτική λειτουργία.

Η κεφαλίδα κεντρικού υπολογιστή είναι χρήσιμη για τη δοκιμή της διεύθυνσης URL-στόχου μέσω IP, όταν το ζητούμενο περιεχόμενο είναι διαθέσιμο μόνο όταν η κεφαλίδα του κεντρικού υπολογιστή ταιριάζει. Ή, εάν θέλετε να δοκιμάσετε την εφαρμογή χρησιμοποιώντας IP/URL εξισορρόπησης φορτίου.

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

Τι θα λέγατε να χρησιμοποιήσετε το cURL στο διαδίκτυο;

Ναι, αυτό είναι δυνατό με τα παρακάτω εργαλεία. Μπορείτε να εκτελέσετε το cURL από απόσταση.

Online CURL – ένα ελαφρύ εργαλείο για τη λήψη της διεύθυνσης URL στο διαδίκτυο και τη δυνατότητα προσθήκης των παρακάτω επιλογών.

--connect-timeout
--cookie
--data
--header
--head
--location
--max-time
--proxy
--request
--user
--url
--user-agent
 

Εργαλείο δημιουργίας γραμμής εντολών cURL – αυτό είναι διαφορετικό. Σας βοηθά να δημιουργήσετε την εντολή curl όπου μπορείτε να εισάγετε πληροφορίες σε ωραίο περιβάλλον εργασίας χρήστη και στο κάτω μέρος θα λάβετε την εντολή cURL.

Το cURL είναι ένα χρήσιμο βοηθητικό πρόγραμμα για την αντιμετώπιση προβλημάτων συνδεσιμότητας σε πραγματικό χρόνο και ελπίζω ότι τα παραπάνω θα σας βοηθήσουν. Αν ψάχνετε να μάθετε περισσότερα, τότε θα το συνιστούσα Βασικά στοιχεία της γραμμής εντολών Linux διαδικτυακό μάθημα.