cURL — це інструмент командного рядка для отримання або надсилання даних за допомогою синтаксису URL-адреси.
Якщо ви працюєте розробником або службою підтримки, ви повинні знати про використання команди cURL для усунення несправностей веб-програм. cURL — це міжплатформна утиліта, що означає, що її можна використовувати в Windows, MAC і UNIX.
Нижче наведено деякі з найбільш використовуваних синтаксисів із прикладами, які допоможуть вам.
Перевірте, чи можна підключитися до URL-адреси
Якщо ви працюєте в системі UNIX і намагаєтесь підключитися до зовнішньої URL-адреси, перше, що вам потрібно зробити, це перевірити, чи можна отримати доступ до URL-адреси через curl.
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://techukraine.net.com * About to connect() to techukraine.net.com port 443 (#0) * Trying 104.25.134.107... * Connected to techukraine.net.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: techukraine.net.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=.techukraine.net.com; HttpOnly; Secure < Vary: Accept-Encoding < Link: <https://techukraine.net.com/wp-json/>; rel="https://api.w.org/" < Link: <https://techukraine.net.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 як application/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 онлайн курс.