cURL je nástroj příkazového řádku pro získávání nebo odesílání dat pomocí syntaxe URL.
Pokud pracujete jako vývojář nebo ve funkci podpory, musíte si být vědomi použití příkazu cURL k odstraňování problémů s webovými aplikacemi. cURL je multiplatformní nástroj, který můžete použít na Windows, MAC a UNIX.
Níže jsou uvedeny některé z nejpoužívanějších syntaxí s příkladem, který vám pomůže.
Table of Contents
Ověřte, zda se můžete připojit k adrese URL
Pokud pracujete na systému UNIX a pokoušíte se připojit externí URL, první věc, kterou chcete udělat, je zkontrolovat, zda máte přístup k URL přes curl.
curl yoururl.com
Nevyvolá žádný výstup. Pokud se však server nemůže připojit, zobrazí se chyby, jako například nemohl vyřešit hostitele.
[[email protected] tmp]# curl helloitdoesntexist.com curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error [[email protected] tmp]#
Uložte výstup URL/URI do souboru
Pokud musíte uložit adresu URL nebo obsah URI do určitého souboru, můžete použít následující syntaxi
curl https://yoururl.com > yoururl.html
např.:
[[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]#
Výše uvedený příklad uloží veškerý obsah z gf.dev do /tmp/gf.html
Zobrazit záhlaví požadavku a odpovědi
Pokud máte problémy a chtěli byste to ověřit, dostáváte očekávanou hlavičku požadavku a odpovědi.
curl -v yoururl.com
Příklad:
[[email protected] tmp]# curl -v https://etechblog.cz.com * About to connect() to etechblog.cz.com port 443 (#0) * Trying 104.25.134.107... * Connected to etechblog.cz.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: etechblog.cz.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=.etechblog.cz.com; HttpOnly; Secure < Vary: Accept-Encoding < Link: <https://etechblog.cz.com/wp-json/>; rel="https://api.w.org/" < Link: <https://etechblog.cz.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 <
Stahujte za omezenou sazbu
Pokud pracujete na optimalizaci a chtěli byste zjistit, kolik času zabere stahování konkrétní rychlostí, můžete:-
curl –-limit-rate 2000B
Příklad:
curl –-limit-rate 2000B https://gf.dev
Připojení pomocí proxy
Velmi užitečné, pokud pracujete na serveru DMZ, kde se potřebujete připojit k vnějšímu světu pomocí proxy.
curl --proxy yourproxy:port https://yoururl.com
Curling můžete použít vložením záhlaví s vašimi daty k testování nebo řešení konkrétního problému. Podívejme se na následující příklad pro vyžádání pomocí Content-Type.
curl --header 'Content-Type: application/json' http://yoururl.com
Tím, že to uděláte výše, žádáte curl, aby předal Content-Type jako application/json v hlavičce požadavku.
Pokud řešíte nějaké problémy a chcete rychle zkontrolovat hlavičku odpovědi, můžete použít následující syntaxi.
curl --head http://yoururl.com
Příklad:
[[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]#
Připojte URL HTTPS/SSL a ignorujte chyby certifikátu SSL
Když se pokusíte o přístup k adrese URL zabezpečené certifikátem SSL/TLS a pokud má nesprávný certifikát nebo se CN neshoduje, zobrazí se následující chyba.
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
Dobrá zpráva, můžete dát cURL pokyn, aby ignoroval chybu certifikátu s příznakem –insecure.
curl --insecure https://yoururl.com
Připojení pomocí specifického protokolu (SSL/TLS)
Velmi užitečné pro otestování, zda konkrétní URL může navázat spojení s konkrétním protokolem SSL/TLS.
Chcete-li se připojit pomocí SSL v3
curl --sslv3 https://yoururl.com
a pro různé verze 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
Stáhnout soubor z FTP serveru
Ke stažení souboru můžete použít také curl zadáním svého uživatelského jména a hesla.
curl -u user:password -O ftp://ftpurl/style.css
Pro tisk v podrobném režimu můžete vždy použít „-v“ s jakoukoli syntaxí.
Záhlaví hostitele je užitečné pro testování cílové adresy URL přes IP, když je požadovaný obsah dostupný pouze tehdy, když se záhlaví hostitele shoduje. Nebo, pokud chcete otestovat aplikaci pomocí load balanceru IP/URL.
curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/
Co takhle použít cURL online?
Ano, to je možné pomocí následujících nástrojů. CURL můžete spustit vzdáleně.
Online CURL – jednoduchý nástroj pro načtení URL online a možnost přidat následující možnosti.
--connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent
Tvůrce příkazového řádku cURL – tenhle je jiný. Pomůže vám vytvořit příkaz curl, kde můžete zadávat informace v pěkném uživatelském rozhraní, a ve spodní části získáte příkaz cURL.
cURL je užitečný nástroj pro řešení problémů s připojením v reálném čase a doufám, že vám výše uvedené pomůže. Pokud se chcete dozvědět více, pak doporučuji Základy příkazového řádku Linuxu online kurz.