10 cURL Użycie poleceń z przykładem w czasie rzeczywistym

cURL to narzędzie wiersza poleceń do pobierania lub wysyłania danych przy użyciu składni adresu URL.

Jeśli pracujesz jako programista lub w funkcji wsparcia, musisz być świadomy użycia polecenia cURL do rozwiązywania problemów z aplikacjami internetowymi. cURL to wieloplatformowe narzędzie, którego można używać w systemach Windows, MAC i UNIX.

Poniżej znajdują się niektóre z najczęściej używanych składni wraz z przykładami, które mogą Ci pomóc.

Sprawdź, czy możesz połączyć się z adresem URL

Jeśli pracujesz w systemie UNIX i próbujesz połączyć się z zewnętrznym adresem URL, pierwszą rzeczą, którą chcesz zrobić, jest sprawdzenie, czy możesz uzyskać dostęp do adresu URL poprzez curl.

curl yoururl.com

Nie wyrzuci żadnych danych wyjściowych. Jeśli jednak serwer nie może się połączyć, otrzymasz błędy, takie jak niemożność rozwiązania hosta.

[[email protected] tmp]# curl helloitdoesntexist.com
curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error
[[email protected] tmp]#

Zapisz wyjście URL/URI do pliku

Jeśli musisz zapisać zawartość adresu URL lub identyfikatora URI w określonym pliku, możesz użyć następującej składni

curl https://yoururl.com > yoururl.html

były:

[[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]#

Powyższy przykład zapisze całą zawartość z gf.dev do /tmp/gf.html

Pokaż nagłówek żądania i odpowiedzi

Jeśli masz problemy i chcesz sprawdzić poprawność, otrzymujesz oczekiwany nagłówek żądania i odpowiedzi.

curl -v yoururl.com

Były:

[[email protected] tmp]# curl -v https://newsblog.pl.com
* About to connect() to newsblog.pl.com port 443 (#0)
*   Trying 104.25.134.107...
* Connected to newsblog.pl.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: newsblog.pl.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=.newsblog.pl.com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://newsblog.pl.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://newsblog.pl.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
<

Pobieraj z limitem

Jeśli pracujesz nad optymalizacją i chcesz sprawdzić, ile czasu zajmuje pobieranie z określoną prędkością, możesz:-

curl –-limit-rate 2000B

Były:

curl –-limit-rate 2000B https://gf.dev

Korzystanie z serwera proxy do połączenia

Bardzo przydatne, jeśli pracujesz na serwerze DMZ, gdzie musisz połączyć się ze światem zewnętrznym za pomocą proxy.

curl --proxy yourproxy:port https://yoururl.com

Możesz użyć curl, wstawiając nagłówek z danymi, aby przetestować lub rozwiązać konkretny problem. Zobaczmy następujący przykład, aby zażądać z Content-Type.

curl --header 'Content-Type: application/json' http://yoururl.com

Wykonując powyższe, prosisz curl o przekazanie Content-Type jako application/json w nagłówku żądania.

Jeśli rozwiązujesz problemy i chcesz szybko sprawdzić nagłówek odpowiedzi, możesz użyć następującej składni.

curl --head http://yoururl.com

Były:

[[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]#

Połącz adres URL HTTPS/SSL i zignoruj ​​wszelkie błędy certyfikatu SSL

Podczas próby uzyskania dostępu do zabezpieczonego certyfikatem SSL/TLS adresu URL i jeśli ma on niewłaściwy certyfikat lub CN nie pasuje, otrzymasz następujący błąd.

curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

Dobra wiadomość, możesz poinstruować cURL, aby ignorował błąd certyfikatu z flagą –insecure.

curl --insecure https://yoururl.com

Połącz przy użyciu określonego protokołu (SSL/TLS)

Bardzo przydatne do sprawdzenia, czy określony adres URL może uzgadniać z określonym protokołem SSL/TLS.

Aby połączyć się za pomocą SSL v3

curl --sslv3 https://yoururl.com

i dla różnych wersji 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

Pobierz plik z serwera FTP

Możesz również użyć curl do pobrania pliku, podając swoją nazwę użytkownika i hasło.

curl -u user:password -O ftp://ftpurl/style.css

Zawsze możesz użyć „-v” z dowolną składnią, aby wydrukować w trybie pełnym.

Nagłówek hosta jest przydatny do testowania docelowego adresu URL przez IP, gdy żądana treść jest dostępna tylko wtedy, gdy pasuje nagłówek hosta. Lub, jeśli chcesz przetestować aplikację przy użyciu adresu IP/URL modułu równoważenia obciążenia.

curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/

Co powiesz na korzystanie z cURL online?

Tak, jest to możliwe dzięki następującym narzędziom. Możesz uruchomić cURL zdalnie.

Online CURL – lekkie narzędzie do pobierania adresu URL online i możliwość dodania następujących opcji.

--connect-timeout
--cookie
--data
--header
--head
--location
--max-time
--proxy
--request
--user
--url
--user-agent
 

Kreator wiersza poleceń cURL – ten jest inny. Pomaga zbudować polecenie curl, w którym możesz wprowadzać informacje w ładnym interfejsie użytkownika, a na dole otrzymasz polecenie cURL.

cURL to przydatne narzędzie do rozwiązywania problemów z łącznością w czasie rzeczywistym i mam nadzieję, że powyższe informacje ci pomogą. Jeśli chcesz dowiedzieć się więcej, polecam Podstawy wiersza poleceń systemu Linux kurs online.