10 cURL-kommandobrug med realtidseksempel

cURL er et kommandolinjeværktøj til at hente eller sende data ved hjælp af URL-syntaks.

Hvis du arbejder som udvikler eller i supportfunktionen, skal du være opmærksom på cURL-kommandobrug til fejlfinding af webapplikationer. cURL er et værktøj på tværs af platforme, hvilket betyder, at du kan bruge på Windows, MAC og UNIX.

Følgende er nogle af de mest brugte syntakser med et eksempel til hjælp.

Bekræft, om du kan oprette forbindelse til URL’en

Hvis du arbejder på et UNIX-system og forsøger at forbinde den eksterne URL, er den første ting, du ønsker at gøre, at kontrollere, om du kan få adgang til URL’en via curl.

krøl din url.com

Det vil ikke kaste noget output. Men hvis serveren ikke kan oprette forbindelse, vil du få fejl, som f.eks. ikke kunne løse værten.

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

Gem URL/URI-output til fil

Hvis du skal gemme URL- eller URI-indholdet i en bestemt fil, kan du bruge følgende syntaks

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

eks:

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

Ovenstående eksempel vil gemme alt indhold fra gf.dev til /tmp/gf.html

  Sådan fjerner du Chat og Meet fra Gmail

Vis overskrift for anmodning og svar

Hvis du har problemer og gerne vil validere, får du den forventede anmodning og svaroverskrift.

curl -v yoururl.com

Eks:

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

Download til en grænsehastighed

Hvis du arbejder på optimering og gerne vil se, hvor lang tid det tager at downloade ved en bestemt hastighed, kan du:-

curl –-limit-rate 2000B

Eks:

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

Brug af en proxy til at oprette forbindelse

Meget praktisk, hvis du arbejder på DMZ-serveren, hvor du skal oprette forbindelse til den eksterne verden ved hjælp af en proxy.

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

Du kan bruge curl ved at indsætte en header med dine data for at teste eller fejlfinde det bestemte problem. Lad os se følgende eksempel for at anmode med Content-Type.

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

Ved at gøre ovenstående beder du curl om at videregive Content-Type som application/json i anmodningsheaderen.

  Administrer din lille virksomhed med disse 10 bedste alt-i-én-platforme

Hvis du laver noget fejlfinding og hurtigt vil tjekke svaroverskriften, kan du bruge følgende syntaks.

curl --head http://yoururl.com

Eks:

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

Tilslut HTTPS/SSL URL og ignorer enhver SSL-certifikatfejl

Når du forsøger at få adgang til SSL/TLS cert-sikret URL, og hvis det har det forkerte certifikat eller CN ikke matcher, vil du få følgende fejl.

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

Gode ​​nyheder, du kan instruere cURL til at ignorere certfejlen med –insecure flag.

curl --insecure https://yoururl.com

Opret forbindelse ved hjælp af en specifik protokol (SSL/TLS)

Meget praktisk at teste, om en bestemt URL kan håndtryk over en specifik SSL/TLS-protokol.

  Sådan blokerer du websteder med en adgangskode

For at oprette forbindelse ved hjælp af SSL v3

curl --sslv3 https://yoururl.com

og til forskellige TLS-versioner

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

Download fil fra FTP-server

Du kan også bruge curl til at downloade filen ved at angive dit brugernavn og adgangskode.

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

Du kan altid bruge “-v” med enhver syntaks til at udskrive i verbose tilstand.

Host-headeren er nyttig til at teste mål-URL’en over IP, når det anmodede indhold kun er tilgængeligt, når host-headeren matcher. Eller hvis du vil teste applikationen ved hjælp af load balancer IP/URL.

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

Hvad med at bruge cURL online?

Ja, det er muligt med følgende værktøjer. Du kan udføre cURL eksternt.

Online CURL – et letvægtsværktøj til at hente URL’en online og muligheden for at tilføje følgende muligheder.

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

cURL kommandolinjebygger – denne er anderledes. Det hjælper dig med at opbygge curl-kommandoen, hvor du kan indtaste information i en fin UI, og nederst får du cURL-kommandoen.

cURL er et nyttigt værktøj til at fejlfinde et forbindelsesproblem i realtid, og jeg håber, at ovenstående hjælper dig. Hvis du ønsker at lære mere, så vil jeg anbefale Grundlæggende om Linux kommandolinje online kursus.