Το 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
Εμφάνιση κεφαλίδας αιτήματος και απάντησης
Εάν αντιμετωπίζετε προβλήματα και θέλετε να επικυρώσετε, λαμβάνετε την αναμενόμενη κεφαλίδα αιτήματος και απάντησης.
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 στην κεφαλίδα αιτήματος.
Εάν κάνετε κάποια αντιμετώπιση προβλημάτων και θέλετε να ελέγξετε γρήγορα την κεφαλίδα απόκρισης, μπορείτε να χρησιμοποιήσετε την ακόλουθη σύνταξη.
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.
Για να συνδεθείτε χρησιμοποιώντας 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 διαδικτυακό μάθημα.