In deze tutorial zullen we kijken naar curl en wget, hoe je aan de slag kunt en vooral de verschillen daartussen.
Wat is CURL?
cURL is een gratis en open-source opdrachtregelprogramma waarmee gebruikers gegevens van de ene externe machine naar de andere kunnen overbrengen met minimale of geen gebruikersinteractie. CURL-gebruik komt veel voor in apparaten zoals routers, printers, telefoons, tablets, mediaspelers en meer.
Het ondersteunt downloaden en uploaden met behulp van protocollen zoals HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, TELNET, POP3, GOPHER en nog veel, veel meer.
cURL biedt ook proxy's, cv-overdrachten, gebruikersauthenticatie, SSL-certificaten en nog veel meer.
Wat is wget?
GNU Wget, gewoonlijk wget genoemd, is een gratis opdrachtregelprogramma voor het overbrengen van bestanden via HTTP/HTTPS, FTP en FTPS. Het biedt functies zoals recursieve downloads, bandbreedtecontrole, hervat afgebroken overdrachten, achtergronddownloads, recursieve spiegelbestanden en mappen, en nog veel meer.
Hoe installeer ik cURL en Wget?
cURL en wget zijn populaire tools die direct beschikbaar zijn in de belangrijkste Linux-distributies; als u geen van beide tools hebt geïnstalleerd, gebruikt u de onderstaande opdrachten om te installeren:
Debian/Ubuntu:
# installeer cURLsudo apt-get installKrul
# installeer wget
sudo apt-get install wget
Boog / Manjaro:
# installeer cURLsudopacman-SKrul
# installeer wget
sudopacman-S wget
REHL/CentOS/Fedora:
# installeer cURLsudo yum installerenKrul
sudodnfinstallerenKrul
# installeer wget
sudo yum installeren wget
sudodnfinstalleren wget
Hoe cURL en Wget gebruiken (voorbeeld use-cases)?
Om er zeker van te zijn dat je de overeenkomsten en verschillen tussen cURL en wget begrijpt, is het goed om naar een paar voorbeelden te kijken:
HTTP/HTTPS-protocollen:
Zowel cURL als wget ondersteunen HTTP- en HTTPS-protocollen. Dus als we een website downloaden zoals linuxhint.com:
krul https://linuxhint.com-oflinuxhint.htmlkrul https://linuxhint.com-oflinuxhint.html
%Totaal%Ontvangen%Xferd Gemiddelde snelheid Tijd Tijd Tijd Actueel
Dload Upload totaal besteed linker snelheid
100256k0256k0 0166k0-: -: -0:00:01 --:--:-- 166k
Standaard drukt cURL de inhoud van de webresource in de terminal af. We gebruiken de vlag -o om de uitvoer om te leiden naar een bestand.
Voor wget geldt het volgende:
wgethttps://linuxhint.com---2021-06-2005:09:Vier vijf- https://linuxhint.com/
linuxhint.com oplossen(linuxhint.com)... 104.21.58.234, 172.67.209.252,2606:4700:3033::6815:3aea, ...
Verbinding maken met linuxhint.com(linuxhint.com)|104.21.58.234|:443... verbonden.
HTTP-verzoek verzonden, in afwachting van antwoord...200Oke
Lengte: niet gespecificeerd[tekst/html]
Opslaan naar: ‘index.html’
index.html
[ <=> ]256,25K 506KB/sin0,5s
2021-06-twintig05:09:46 (506KB/s)- 'index.html' opgeslagen[262396]
Wget daarentegen slaat de gevraagde bron op in een bestand.
Het is goed om te weten dat beide tools de bron downloaden. De ls-details van de twee bestanden tonen beide bestandsgroottes.
$ls -deindex.html linuxhint.html-rw-rw-r-- 1linuxhint linuxhint262396juni19 vijftien:vijftigindex.html
-rw-rw-r-- 1linuxhint linuxhint262396junitwintig05:07 linuxhint.html
FTP-protocol:
Zowel cURL als wget ondersteunen downloads op FTP-protocollen. cURL ondersteunt echter uploaden naar ftp.
Gebruik de onderstaande opdracht om bestanden van de FTP-server te downloaden met wget:
wget --gebruiker= debian--wachtwoord=’debian’ ftp://192.168.0.112/backup.zstwget --gebruiker= debian--wachtwoord='debian'ftp://192.168.0.112/backup.zst
---2021-06-2005:29: 06-- ftp://192.168.0.112/backup.zst
=>‘back-up.zst’
Verbinding maken met 192.168.0.112:eenentwintig... verbonden.
Loggenin alsdebian ... Gelogdin!
==>SYST ... klaar. ==>PWD ... gedaan.
==>TYPE I ... klaar. ==>CWD niet nodig.
==>SIZE backup.zst ... klaar.
==>PASV ... gedaan. ==>RETR backup.zst ... klaar.
backup.zst
[ <=> ] 0--.- KB/sin0s
2021-06-twintig05:29: 06(0,00B/s)- 'backup.zst' opgeslagen[0]
Gebruik krul, voeg de . toe-umarkeren als:
Krul-udebian:debian ‘ftp://192.168.0.112/backup.zst'-ofbackup.zst
Krul-udebian: debian'ftp://192.168.0.112/backup.zst' -ofbackup.zst
%Totaal%Ontvangen%Xferd Gemiddelde snelheid Tijd Tijd Tijd Actueel
Dload Upload totaal besteed linker snelheid
0 0 0 0 0 0 0 0-: -: - -: -: - -: -: -0
Om een te uploadenhet dossiertotftpmet krul gebruiken we de-Toptie als:
Krul-udebian: debian-Tbackup1.zst ftp://192.168.0.112/ftp/
Zorg ervoor dat de map bestaat en dat de gebruiker schrijfrechten heeft.
OPMERKING: Hoewel cURL een breed scala aan protocollen ondersteunt, biedt het geen recursieve downloads. Aan de andere kant ondersteunt Wget recursieve downloads met behulp van de -recursieve optie, aangezien zowel HTTP/HTTPS- als FTP/FTPS-protocollen dergelijke functionaliteit bieden.
Overeenkomsten tussen wget en cURL
Nu voor de kers op de taart:
- Beide tools ondersteunen standaardprotocollen zoals HTTP, HTTPS, FTP, FTPS.
- Beide tools downloaden bestanden van internet.
- Beide tools ondersteunen HTTP-cookies.
- Beide tools ondersteunen uitvoer naar een bestand.
- Zowel gratis als actief ontwikkelde tools.
- Beide tools ondersteunen cv-overdrachten.
- Beide tools ondersteunen HTTP POST.
Verschillen tussen wget en cURL
Hier zijn enkele van de verschillen tussen curl en wget:
- Wget is een eenvoudig overdrachtshulpprogramma, terwijl curl zoveel meer biedt.
- Curl biedt de libcurl-bibliotheek, die kan worden uitgebreid tot GUI-toepassingen. Wget daarentegen is een eenvoudig hulpprogramma voor de opdrachtregel.
- Wget ondersteunt minder protocollen in vergelijking met cURL.
- Recursieve downloads worden niet ondersteund in curl.
- Wget is standaard beschikbaar in Linux-systemen, terwijl cURL direct beschikbaar is in Windows-systemen.
- cURL ondersteunt meerdere parallelle overdrachten.
- cURL voert Transfer-Encoded HTTP-decompressies uit, terwijl wget dat niet doet.
- cURL ondersteunt bidirectionele HTTP terwijl wget een gewone HTTP POST biedt.
- cURL ondersteunt meer HTTP-verificatiemethoden in vergelijking met wget.
- Wget ondersteunt geen SOKKEN.
- Wget vereist dat gnulib is geïnstalleerd.
- In tegenstelling tot curl zijn functies zoals cookies, tijdstempels en volgomleidingen standaard ingeschakeld in wget. cURL vereist dat elk expliciet wordt gespecificeerd.
Conclusie
Deze tutorial was gericht op de overeenkomsten en de verschillen tussen cURL. Hoewel het lijkt alsof cURL de beste keuze is, zijn er gevallen waarin wget de beste keuze is.
Mijn advies aan jou is om te kiezen wat voor jou werkt.