Wat is een cURL commando en hoe gebruik je het?

Wat is een cURL commando en hoe gebruik je het?

Het cURL commando is een handig Linux hulpmiddel voor gegevensoverdracht en het oplossen van verbindingsproblemen. Aan de client-kant wordt cURL aangestuurd door libcurl, een vrije URL-overdrachtsbibliotheek.

Laten we eens wat dieper ingaan en uitzoeken hoe we dit commando kunnen gebruiken.

cURL (Client URL) is een command-line tool waarmee gegevens van of naar een server kunnen worden overgedragen zonder interactie van de gebruiker, met behulp van de ondersteunde libcurl bibliotheek. cURL kan ook worden gebruikt voor het oplossen van verbindingsproblemen.

cURL commando syntaxis en opties

Dit is de basissyntaxis van het cURL commando:

curl [OPTIONS] [URL]

Zonder enige toevoeging zal cURL de inhoud van de URL in HTML-format weergeven. Als je bijvoorbeeld het volgende invoert, krijg je de inhoud van de startpagina van hostinger.nl te zien:

curl hostinger.nl

Je kunt het cURL commando nog verder aanpassen door deze opties toe te voegen:

  • -X <HTTP_METHOD> – specificeert welke HTTP-methode moet worden gebruikt.
  • -H “HeaderName: HeaderValue” – stelt aangepaste HTTP-headers voor het verzoek in. 
  • -d “data” – verstuurt gegevens in de verzoektekst.
  • -o <output_file> – slaat het antwoord in een bestand op.
  • -O – slaat een bestand op afstand op.
  • -i – bevat HTTP-response headers in de output.
  • -L – volgt HTTP-omleidingen.
  • -k – staat verbindingen met SSL-sites zonder certificaten toe.
  • -v – biedt uitgebreide output voor debugging.

Met de volgende opdracht kun je bijvoorbeeld file.txt van example.com downloaden:

curl -O https://example.com/file.txt

Hoe controleer je de cURL versie?

Net als bij elk ander Linux commando moeten we, voordat we met cURL aan de slag gaan, inloggen op de VPS. Als je hulp nodig hebt, bekijk dan deze tutorial over SSH.

Laten we eerst kijken welke versie van cURL beschikbaar is. Dit doen we met het volgende commando:

curl --version

De output toont de cURL-versie en een lijst met ondersteunde protocollen.

Hoe gebruik je cURL in Linux?

Nu je de basisprincipes van het cURL commando begrijpt, kunnen we wat meer de diepte ingaan en enkele praktische toepassingen bekijken.

Hoe gebruik je cURL commando voor HTTP?

cURL kan worden gebruikt voor een proxyserver. Als je achter een proxyserver zit die op poort 8090 naar sampleproxy.com luistert, download dan de bestanden zoals hieronder weergegeven:

curl -x  sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz

In het bovenstaande voorbeeld kun je -U gebruikersnaam:wachtwoord overslaan als de proxy geen authenticatiemethode vereist.

Een typisch HTTP-verzoek bevat altijd een header. De HTTP-header stuurt aanvullende informatie over de externe webserver samen met het eigenlijke verzoek. Met de ontwikkelaarstools van een browser kun je de headerinformatie controleren en verifiëren met een cURL commando.

Hieronder staat een voorbeeld van het ophalen van header-informatie van een website.

curl -I www.testdomain.com

Met cURL kun je een GET en een POST verzoek uitvoeren. Een GET verzoek ziet er als volgt uit:

curl http://mydomain.com

Een POST verzoek ziet er bijvoorbeeld zo uit:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp

text=Hello is de POST-verzoek parameter. Dit is vergelijkbaar met HTML-formulieren.

Je kunt in één cURL commando ook meerdere HTTP-methodes opgeven. Gebruik hiervoor de optie -next:

curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp

Dit bestaat uit een POST-verzoek gevolgd door een GET-verzoek

Elk HTTP-verzoek heeft een user agent. Dit vermeldt de webbrowser gegevens van de client. Een cURL verzoek bevat standaard curl en het versienummer dat door de user agent is opgegeven. Hier is een voorbeeld van de output:

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

Je kunt deze standaard user agent informatie wijzigen met het onderstaande commando:

curl -I http://mydomain.com –-user-agent “My new Browser”

De gewijzigde output is nu:

“GET / HTTP/1.1” 200 “_” ”My new Browser”

Hoe gebruik je cURL commando’s voor cookies?

cURL commando’s kunnen ook worden gebruikt om te kijken welke cookies er op een URL worden gedownload. Dus als je https://www.samplewebsite.com opent, kun je het bestand uitvoeren, de cookies opslaan en ze openen met de Cat of VIM editor.

Hier is een voorbeeldopdracht voor deze toepassing:

curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O

Ook als je een bestand met cookies hebt, kun je dit naar de website sturen. In het onderstaande voorbeeld zie je een dergelijk commando:

curl --cookie Mycookies.txt https://www. samplewebsite.com

Hoe gebruik je cURL voor FTP?

Het cURL commando ondersteunt FTP, dus jij kunt het gebruiken om bestanden van een externe server te downloaden.

curl -u gebruikersnaam:wachtwoord -O ftp://sampleftpserver/testfile.tar.gz

In het bovenstaande commando is ftp://sampleftpserver een FTP-server die verbindingen accepteert. De gebruikersnaam en het wachtwoord kunnen voor anonieme FTP-verbindingen worden overgeslagen. Voer de opdracht in en kijk hoe de voortgangsbalk wordt gevuld.

Je kunt ook bestanden uploaden met het onderstaande commando:

curl -u username:password -T testfile.tar.gz ftp://sampleftpserver

Hoe beperk je cURL output?

Als je cURL gebruikt, kun je de bandbreedte beperken en ervoor zorgen dat deze niet wordt afgeknepen (throttled).

Het onderstaande commando beperkt de bandbreedte tot 100K:

curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O

Conclusie

cURL is een krachtig en veelgebruikt tool, vooral als je de commandoregel vaak gebruikt. Het biedt verschillende mogelijkheden en ondersteunt meerdere protocollen.

Als je meer wilt weten over het cURL commando, raadpleeg dan de ingebouwde handleiding die beschikbaar is bij alle Unix versies:

man curl

We hopen dat deze tutorial je op weg heeft geholpen met cURL. Vertel ons hieronder, in de reacties, hoe jij deze handige tool wilt gaan gebruiken.

Author
De auteur

Patty Reuser

Patty Reuser is een localization specialist voor de Nederlandse markt, die uitblinkt in het vertalen van content met een scherp marketinginzicht. Met haar expertise maakt ze complexe concepten eenvoudig en toegankelijk voor Nederlandse doelgroepen. Voor meer informatie, bekijk haar LinkedIn-profiel.