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://pctechbg.net.com * About to connect() to pctechbg.net.com port 443 (#0) * Trying 104.25.134.107... * Connected to pctechbg.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: pctechbg.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=.pctechbg.net.com; HttpOnly; Secure < Vary: Accept-Encoding < Link: <https://pctechbg.net.com/wp-json/>; rel="https://api.w.org/" < Link: <https://pctechbg.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]#
Свържете HTTPS/SSL URL и игнорирайте всяка грешка в 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 дистанционно.
Онлайн CURL – лек инструмент за извличане на URL адреса онлайн и възможност за добавяне на следните опции.
--connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent
cURL конструктор на командния ред – този е различен. Помага ви да създадете командата curl, където можете да въвеждате информация в приятен потребителски интерфейс, а в долната част ще получите командата cURL.
cURL е полезна помощна програма за отстраняване на проблем с връзката в реално време и се надявам, че горното ще ви помогне. Ако искате да научите повече, бих препоръчал Основи на командния ред на Linux онлайн курс.