cURL Overzicht
cUrl nuttige opdrachten met parameters
Hier is een cheatsheet met de meest nuttige cURL opdrachten en hun parameters:
De bovenstaande afbeelding is gegenereerd door Flux - text to image AI model.
Basisgebruik van cURL
- Bestand downloaden:
curl http://example.com/file.zip -o file.zip
- Meerdere bestanden downloaden:
curl -O URL1 -O URL2
- Redirects volgen:
curl -L http://example.com/file
- Alleen headers tonen:
curl -I http://example.com
Authenticatie
- Basisauthenticatie:
curl -u username:password http://example.com
- Gebruik .netrc bestand:
curl --netrc-file .netrc http://example.com
HTTP Methoden
- POST-aanvraag:
curl -X POST -d 'name=value' http://example.com
- PUT-aanvraag:
curl -X PUT -d @file http://example.com
- Aangepaste methode:
curl -X METHODE http://example.com
Headers en Data
- Aangepaste header toevoegen:
curl -H "X-Header: Value" http://example.com
- JSON-data verzenden:
curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
- Formulierdata verzenden:
curl -F "key=value" -F "file=@localfile" http://example.com
SSL/TLS Opties
- SSL-certificaatverificatie negeren:
curl -k https://example.com
- Clientcertificaat gebruiken:
curl --cert cert.pem --key key.pem https://example.com
Proxy en Netwerken
- Proxy gebruiken:
curl -x proxyserver.server.com:PORT http://example.com
- Download snelheid beperken:
curl --limit-rate 1000B -O http://example.com/file
Uitvoerbeheer
- Stille modus:
curl -s http://example.com
- Gedetailleerde modus:
curl -v http://example.com
- Uitvoer naar bestand schrijven:
curl -o file.html http://example.com
- Opslaan met externe bestandsnaam:
curl -O http://example.com/file.zip
Overige
- Een mislukte download hervatten:
curl -C - -o partial_file.zip http://example.com/file.zip
- Een timeout instellen:
curl --connect-timeout 10 http://example.com
- Een configuratiebestand gebruiken:
curl -K config_file http://example.com
Deze cheatsheet dekt de meest gebruikte cURL opdrachten en hun parameters, en biedt een snelle verwijzing voor verschillende HTTP-operaties en dataoverdrachten.
Geavanceerde cURL opdrachten
Hier zijn enkele geavanceerde cURL opdrachten voor het debuggen:
-
Gedetailleerde uitvoer:
curl -v https://example.com
Deze opdracht geeft gedetailleerde informatie over de aanvraag en het antwoord, inclusief headers en verbinding details. -
Volledige trace dump:
curl --trace - https://example.com
Deze opdracht geeft een hexdump van alle binnenkomende en uitgaande gegevens, wat een compleet overzicht van de gehele communicatie biedt. -
Trace met tijdstempels:
curl --trace - --trace-time https://example.com
Deze opdracht voegt tijdstempels toe aan de trace-uitvoer, wat handig is voor het analyseren van tijdsgerelateerde problemen. -
Alleen responsheaders tonen:
curl -s -o /dev/null -D - https://example.com
Deze opdracht toont alleen de responsheaders, wat handig is voor snelle headeranalyse. -
Alleen aanvraagheaders tonen:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'
Deze complexe opdracht filtert alleen de aanvraagheaders, wat handig is voor het inspecteren van wat er wordt gestuurd. -
Gebruik van Pantheon Debugger:
curl -I -H "Pantheon-Debug:1" https://example.com
Deze opdracht gebruikt de Debug-header van Pantheon om aanvullende informatie over de aanvraag te krijgen, wat handig is voor websites die op Pantheon worden gehost. -
HTTP/2 protocol forceren:
curl --http2 https://example.com
Deze opdracht zorgt ervoor dat het HTTP/2 protocol wordt gebruikt, wat kan worden gecombineerd met -I om HTTP/2 ondersteuning te verifiëren. -
Debuggen met netcat: In één terminal:
nc -l 1234
In een andere:curl http://127.0.0.1:1234
Dit laat je exact zien wat curl stuurt, wat handig is voor payload debugging.
Deze geavanceerde opdrachten bieden krachtige debugmogelijkheden, waarmee ontwikkelaars verschillende aspecten van HTTP-communicatie kunnen inspecteren en complexe problemen kunnen oplossen.
Algemene cURL toepassingen
curl is een veelzijdig command-line-hulpmiddel met vele toepassingen. Hier zijn enkele van de meest voorkomende toepassingen van curl:
Webinteracties
- Bestanden downloaden: curl kan bestanden downloaden van URLs.
- Web scraping: curl kan webpagina-inhoud ophalen voor scraping-doelen.
- Website testen: curl is handig om te controleren of een website bereikbaar is en om de inhoud ervan op te halen.
API-interacties
- API-aanvragen sturen: curl ondersteunt verschillende HTTP-methoden (GET, POST, PUT, DELETE) voor het interactie met APIs.
- API-eindpunten testen: curl biedt een snelle manier om API-eindpunten te testen en te debuggen zonder een specifieke API-client te hoeven gebruiken.
Netwerkprobleemoplossing
- Connectiviteit controleren: curl kan worden gebruikt om netwerkverbindingen te controleren en problemen te troubleshooten.
- DNS testen: curl laat je specifieke DNS-servers forceren voor het troubleshooten van DNS-gerelateerde problemen.
- Headers inspecteren: curl kan HTTP-headers tonen, wat handig is voor het debuggen.
Dataoverdracht
- FTP-operaties: curl ondersteunt bestandsoverdrachten via het File Transfer Protocol (FTP).
- SMTP-interacties: curl kan worden gebruikt om e-mails te verzenden via het Simple Mail Transfer Protocol (SMTP).
Beveiliging en authenticatie
- SSL-verbindingen: curl ondersteunt beveiligde verbindingen via SSL/TLS.
- Authenticatie: curl kan verschillende authenticatiemethoden verwerken, waaronder basisauthenticatie en clientcertificaten.
Ontwikkeling en debuggen
- Verschillende HTTP-methoden simuleren: curl laat ontwikkelaars gemakkelijk verschillende HTTP-methoden testen.
- Gedetailleerde logboekregistratie: curl’s gedetailleerde modus biedt gedetailleerde informatie over de aanvraag-antwoordcyclus, wat nuttig is voor het debuggen.
Deze toepassingen tonen de flexibiliteit van curl als tool voor webinteracties, API-testen, netwerkprobleemoplossing en ontwikkelingstaken.
Website-prestatietesten met cURL
curl is een krachtig hulpmiddel voor het testen van website-prestaties. Hier is hoe je het kunt gebruiken om verschillende aspecten van de laadtijd van een website te meten:
Basisprestatietest
Om een eenvoudige meting van de laadtijd van een website te krijgen, gebruik je deze opdracht:
curl -o /dev/null -s -w "Totale tijd: %{time_total}s\n" "https://example.com"
Deze opdracht geeft de totale tijd weer die nodig was om de website op te halen[2].
Gedetailleerde prestatieindicatoren
Voor een uitgebreidere analyse kun je curl gebruiken om meerdere prestatieindicatoren te meten:
curl -s -w 'Testen van website responsduur voor :%{url_effective}\n\nLookup tijd:\t\t%{time_namelookup}\nConnect tijd:\t\t%{time_connect}\nPre-transfer tijd:\t%{time_pretransfer}\nStart-transfer tijd:\t%{time_starttransfer}\n\nTotale tijd:\t\t%{time_total}\n' -o /dev/null https://example.com
Deze opdracht geeft een overzicht van de verschillende stappen in het laadproces, waaronder DNS-lookup tijd, connectietijd en totale tijd[1].
Geavanceerde indicatoren
Voor nog meer gedetailleerde analyse kun je extra indicatoren toevoegen:
curl -o /dev/null -w "HTTP-versie: %{http_version}\nPaginagrootte: %{size_download} bytes\nResponscode: %{response_code}\nDNS-lookup: %{time_namelookup} sec\nConnectietijd: %{time_connect} sec\nTijd tot eerste byte: %{time_starttransfer} sec\nTotale tijd: %{time_total} sec\n" -s https://example.com
Deze opdracht bevat informatie over de HTTP-versie, paginagrootte en responscode[3].
Benchmarken van meerdere aanvragen
Om consistentie te testen of prestaties te monitoren over tijd, kun je een lus gebruiken om meerdere aanvragen te maken:
for i in {1..5}; do curl -o /dev/null -s -w "Aanvraag $i Totale tijd: %{time_total}\n" https://example.com; done
Deze test wordt vijf keer uitgevoerd en toont de totale tijd voor elke aanvraag[3].
Een prestatietestscript maken
Je kunt een eenvoudig bash-script maken om deze tests te automatiseren en de resultaten op te slaan:
#!/bin/bash
curl -s -w 'Testen van website responsduur voor :%{url_effective}\n\nLookup tijd:\t\t%{time_namelookup}\nConnect tijd:\t\t%{time_connect}\nPre-transfer tijd:\t%{time_pretransfer}\nStart-transfer tijd:\t%{time_starttransfer}\n\nTotale tijd:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
Vervang “URL” met de website die je wilt testen. Dit script slaat de resultaten op in een bestand met een datumstempel[5].
Door deze curl-opdrachten en scripts te gebruiken, kun je effectief de prestaties van een website meten en monitoren, waardoor je potentiële bottlenecks kunt identificeren en de laadtijd kunt optimaliseren.