10 Пример использования команды cURL в реальном времени

cURL — это инструмент командной строки для получения или отправки данных с использованием синтаксиса URL.

Если вы работаете разработчиком или в службе поддержки, вы должны знать об использовании команды cURL для устранения неполадок веб-приложений. 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://toadmin.ru.com
* About to connect() to toadmin.ru.com port 443 (#0)
*   Trying 104.25.134.107...
* Connected to toadmin.ru.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: toadmin.ru.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=.toadmin.ru.com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://toadmin.ru.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://toadmin.ru.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 онлайн курс.