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.
Spis treści:
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.