Startpagina > Netwerkbeheer > curl

curl: De ultieme tool voor gegevensoverdracht/testen op basis van URL's

Een krachtig commandoregelprogramma dat gegevens uitwisselt met servers via URL's. Het ondersteunt diverse protocollen zoals HTTP/HTTPS, FTP/FTPS, SFTP, en wordt veel gebruikt voor API-testen, bestandsuploads/downloads en probleemoplossing.

Wat is curl?

curl, een afkorting van 'Client URL', is een CLI-hulpprogramma dat gegevens verzendt/ontvangt met behulp van URL-syntaxis. Het wordt gebruikt in een breed scala aan gebieden, waaronder webontwikkeling, API-testen, CI/CD-automatisering en operationele probleemoplossing.

Kernfuncties

  • Diverse protocollen: HTTP/HTTPS, FTP/FTPS, SFTP, LDAP, SMTP/SMTPS, enz. (afhankelijk van build-opties).
  • HTTP-controle: Fijne controle over methoden, headers, cookies, compressie, HTTP/2, redirects, timeouts, retries, enz.
  • Uploaden/downloaden: Bestanden downloaden (-o/-O), hervatten (-C -), formulierupload (-F), enkele bestandsupload (-T).
  • Beveiliging: TLS-certificaatvalidatie (standaard ingeschakeld), vertrouwde root opgeven (--cacert), clientcertificaat (--cert/--key).
  • Automatiseringvriendelijk: Stille uitvoer (-s), afsluiten bij falen (-f), geformatteerde uitvoer (-w), geschikt voor scripts.

Belangrijkste opties (Shell)

Als basis is een doel-URL vereist. Meerdere URL's kunnen met spaties worden gescheiden of uit een bestand (@file) worden gelezen.

1. Basisverzoek en download

2. HTTP-methoden en gegevensoverdracht

3. Headers, authenticatie, cookies

4. Uitvoercontrole/betrouwbaarheid

5. Beveiliging/TLS & Proxy/Diagnose

6. Protocol/Versie

7. Hulp/Versie

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`curl` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Voorbeelden van gebruiksscenario's (Shell)

Hier zijn veelgebruikte aanvraagpatronen uit de praktijk verzameld.

Inhoud van webpagina afdrukken

curl https://example.com

Basis GET-verzoek.

Bestand downloaden (redirects volgen)

curl -O -L https://wordpress.org/latest.zip

-O originele bestandsnaam, -L redirects volgen.

JSON GET + mooi weergeven

curl -s https://api.github.com/users/google | jq

Parsen/verbeteren van leesbaarheid met jq.

JSON POST

curl -X POST -H "Content-Type: application/json" -d '{"username":"test"}' https://api.example.com/users

Headers en body opgeven.

Formulierbestand uploaden (multipart)

curl -F "upload_file=@./my-image.png" https://example.com/upload

Veldnaam=upload_file, bestandspad opgeven met @.

Bearer token authenticatie

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.example.com/me

Gebruik de Authorization-header.

Alleen responsheaders controleren

curl -I https://google.com

Nuttig voor het diagnosticeren van servicestatus/cache.

Niet-nul afsluiten bij falen + stil

curl -sSf https://example.com/health

-sS -f combinatie: scriptvriendelijk.

Time-out + opnieuw proberen

curl --connect-timeout 5 --max-time 20 --retry 3 --retry-all-errors https://example.com/api

Reageer op onstabiele netwerken.

Testen met specifiek IP (--resolve)

curl --resolve 'api.example.com:443:203.0.113.10' https://api.example.com/status

DNS-omleidingstest (behoudt SNI).

Installatie

Meestal standaard aanwezig, anders installeren via pakketbeheer.

Debian/Ubuntu

sudo apt update && sudo apt install -y curl

RHEL/CentOS/Fedora

sudo dnf install -y curl

Arch Linux

sudo pacman -S --needed curl

Tips & Waarschuwingen

Handige tips

  • curl vs wget: wget is sterk in grote/recursieve downloads, curl is sterk in API-interactie/fijne controle.
  • Aanhalingstekens: Aanbevolen om JSON/speciale tekens in -d/-H tussen enkele aanhalingstekens te plaatsen.
  • Gecomprimeerde respons: Gebruik --compressed om automatisch de compressie van de server te decomprimeren, wat het dataverkeer vermindert indien ondersteund.
  • Proxy: Configureer HTTP-proxy met -x, SOCKS5 met --socks5.
  • Beveiligingswaarschuwing (-k): -k/--insecure alleen gebruiken voor ontwikkeling/testen. Voor productie wordt aanbevolen om vertrouwde roots te configureren (--cacert).

gerelateerde commando's

Functional vergelijkbare of vaak samen gebruikte commando's.



Hétzelfde categoriecommando