Ποια είναι η διαφορά μεταξύ wget και curl;

What Is Difference Between Wget Vs Curl



Συχνά πρέπει να κατεβάζουμε αρχεία από απομακρυσμένους διακομιστές στον τοπικό μας υπολογιστή. Σε γραφική επιφάνεια εργασίας, μπορούμε να χρησιμοποιήσουμε ένα πρόγραμμα περιήγησης GUI και να κάνουμε κλικ στο κουμπί λήψης. Ωστόσο, σε ένα τερματικό, πρέπει να χρησιμοποιήσουμε εργαλεία που έχουν αναπτυχθεί για το τερματικό. Κατά τη λήψη αρχείων από το τερματικό, εμφανίζονται συχνά τέσσερα εργαλεία: μπούκλα , ώμος , wget , και αρια2 Το Ενώ το axel και το aria2 μπορεί να μην είναι πολύ γνωστά, οι περισσότεροι χρήστες τερματικών γνωρίζουν το curl και το wget.

Σε αυτό το σεμινάριο, θα εξετάσουμε το curl και το wget, πώς να ξεκινήσετε και το πιο σημαντικό, τις διαφορές μεταξύ τους.







Τι είναι το cURL;

Το cURL είναι ένα δωρεάν βοηθητικό πρόγραμμα γραμμής εντολών ανοιχτού κώδικα που επιτρέπει στους χρήστες να μεταφέρουν δεδομένα από ένα απομακρυσμένο μηχάνημα σε ένα άλλο με ελάχιστη ή καθόλου αλληλεπίδραση χρήστη. Η χρήση CURL επικρατεί σε συσκευές όπως δρομολογητές, εκτυπωτές, τηλέφωνα, tablet, προγράμματα αναπαραγωγής πολυμέσων και άλλα.



Υποστηρίζει λήψη και μεταφόρτωση χρησιμοποιώντας πρωτόκολλα όπως HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, TELNET, POP3, GOPHER και πολλά, πολλά άλλα.



Το cURL παρέχει επίσης διακομιστές μεσολάβησης, συνέχιση μεταφορών, έλεγχο ταυτότητας χρήστη, πιστοποιητικά SSL και πολλά άλλα.





Τι είναι το wget;

Το GNU Wget, που συνήθως ονομάζεται wget, είναι ένα δωρεάν βοηθητικό πρόγραμμα γραμμής εντολών για τη μεταφορά αρχείων χρησιμοποιώντας HTTP/HTTPS, FTP και FTPS. Παρέχει λειτουργίες όπως επαναληπτικές λήψεις, έλεγχος εύρους ζώνης, συνέχιση διακοπών μεταφορών, λήψεις στο παρασκήνιο, αναδρομικά καθρέφτη αρχείων και καταλόγων και πολλά άλλα.

Πώς να εγκαταστήσετε το cURL και το Wget;

Το cURL και το wget είναι δημοφιλή εργαλεία που είναι άμεσα διαθέσιμα σε μεγάλες διανομές Linux. εάν δεν έχετε εγκατεστημένο κανένα από τα δύο εργαλεία, χρησιμοποιείτε τις παρακάτω εντολές για εγκατάσταση:



Debian/Ubuntu:

# εγκατάσταση cURL

sudo apt-get installμπούκλα

# εγκατάσταση wget

sudo apt-get install wget

Arch / Manjaro:

# εγκατάσταση cURL

sudoPacman-ΜΙΚΡΟμπούκλα

# εγκατάσταση wget

sudoPacman-ΜΙΚΡΟ wget

REHL/CentOS/Fedora:

# εγκατάσταση cURL

sudo yum εγκατάστασημπούκλα

sudodnfεγκαθιστώμπούκλα

# εγκατάσταση wget

sudo yum εγκατάσταση wget

sudodnfεγκαθιστώ wget

Πώς να χρησιμοποιήσετε το cURL και το Wget (παραδείγματα περιπτώσεων χρήσης);

Για να διασφαλίσετε ότι κατανοείτε τις ομοιότητες και τις διαφορές μεταξύ του cURL και του wget, καλό είναι να δείτε μερικά παραδείγματα:

Πρωτόκολλα HTTP/HTTPS:

Τόσο το cURL όσο και το wget υποστηρίζουν πρωτόκολλα HTTP και HTTPS. Επομένως, εάν κατεβάσουμε έναν ιστότοπο όπως το linuxhint.com:

μπούκλα https://linuxhint.comlinuxhint.html

μπούκλα https://linuxhint.comlinuxhint.html

%Σύνολο%Ελήφθη%Xferd Μέση ταχύτητα Χρόνος Χρόνος ρεύμα ρεύμα

Φόρτωση μεταφόρτωσης Συνολική δαπανημένη αριστερή ταχύτητα

100256κ0256κ0 0166κ0-: -: -0: 00: 01-:-:-166k

Από προεπιλογή, το cURL θα εκτυπώσει τα περιεχόμενα του πόρου ιστού στο τερματικό. Χρησιμοποιούμε τη σημαία -o για να ανακατευθύνουμε την έξοδο σε ένα αρχείο.

Τα ακόλουθα ισχύουν για το wget:

wgethttps://linuxhint.com

--2021-06-2005:09:Τέσσερα πέντε- https://linuxhint.com/

Επίλυση του linuxhint.com(linuxhint.com)... 104.21.58.234, 172.67.209.252,2606:4700:3033::6815: 3α, ...

Σύνδεση στο linuxhint.com(linuxhint.com)|104.21.58.234|:443... συνδεδεμένος.

Το αίτημα HTTP στάλθηκε, αναμένεται απάντηση ...200Εντάξει

Μήκος: απροσδιόριστο[κείμενο/html]

Αποθήκευση σε: ‘index.html’

index.html

[ <=>> ]256,25Κ 506ΚΒ/μικρόσε0,5s

2021-06-είκοσι05:09:46 (506KB/μικρό)- το 'index.html' αποθηκεύτηκε[262396]

Το Wget, από την άλλη πλευρά, αποθηκεύει τον απαιτούμενο πόρο σε ένα αρχείο.

Είναι καλό να σημειωθεί ότι και τα δύο εργαλεία κάνουν λήψη του πόρου. Οι λεπτομέρειες ls των δύο αρχείων δείχνουν και τα δύο μεγέθη αρχείων.

$ls -οindex.html linuxhint.html

-rw-rw-r-- 1linuxhint linuxhint262396Ιουν19 δεκαπέντε:πενήνταindex.html

-rw-rw-r-- 1linuxhint linuxhint262396Ιουνείκοσι05:07 linuxhint.html

Πρωτόκολλο FTP:

Τόσο το cURL όσο και το wget υποστηρίζουν λήψεις σε πρωτόκολλα FTP. Ωστόσο, το cURL υποστηρίζει τη μεταφόρτωση σε ftp.

Χρησιμοποιήστε την παρακάτω εντολή για λήψη αρχείων από διακομιστή FTP με wget:

wget --χρήστης= debian--Κωδικός πρόσβασης= 'Debian' ftp://192.168.0.112/backup.zst

wget --χρήστης= debian--Κωδικός πρόσβασης='debian'ftp://192.168.0.112/backup.zst

--2021-06-2005:29: 06-- ftp://192.168.0.112/backup.zst

=>>‘Backup.zst’

Σύνδεση με 192.168.0.112:είκοσι ένα... συνδεδεμένος.

Ξύλευσησε όπως καιdebian ... Συνδεδεμένοςσε!

==>>ΣΥΣΤΗΜΑ ... τελείωσε. ==>>PWD ... τελείωσε.

==>>ΤΥΠΟΣ ... τελείωσα. ==>>CWD δεν χρειάζεται.

==>>SIZE backup.zst ... τελείωσε.

==>>PASV ... τελείωσε. ==>>RETR backup.zst ... έγινε.

backup.zst

[ <=>> ] 0--.- KB/μικρόσε0s

2021-06-είκοσι05:29: 06(0,00σι/μικρό)- Το ‘backup.zst’ αποθηκεύτηκε[0]

Χρησιμοποιώντας το curl, προσθέστε το-uσημαία ως:

μπούκλα-udebian: debian ‘ftp://192.168.0.112/backup.zst 'backup.zst

μπούκλα-udebian: debian'ftp://192.168.0.112/backup.zst' backup.zst

%Σύνολο%Ελήφθη%Xferd Μέση ταχύτητα Χρόνος Χρόνος ρεύμα ρεύμα

Φόρτωση μεταφόρτωσης Συνολική δαπανημένη αριστερή ταχύτητα

0 0 0 0 0 0 0 0-: -: - -: -: - - -: -: -0

Για να ανεβάσετε ένααρχείοπρος τοftpμε curl, χρησιμοποιούμε τοεπιλογή ως:

μπούκλα-udebian: debianbackup1.zst ftp://192.168.0.112/ftp/

Βεβαιωθείτε ότι ο κατάλογος υπάρχει και ότι ο χρήστης έχει δικαιώματα εγγραφής σε αυτόν.

ΣΗΜΕΙΩΣΗ: Παρόλο που το cURL υποστηρίζει μια μεγάλη ποικιλία πρωτοκόλλων, δεν παρέχει αναδρομικές λήψεις. Από την άλλη πλευρά, το Wget υποστηρίζει αναδρομικές λήψεις χρησιμοποιώντας την επιλογή -recursive όπως προσφέρουν τόσο τα πρωτόκολλα HTTP/HTTPS όσο και τα FTP/FTPS, μια τέτοια λειτουργικότητα.

Ομοιότητες μεταξύ wget και cURL

Τώρα για το κερασάκι στην τούρτα:

  • Και τα δύο εργαλεία υποστηρίζουν τυπικά πρωτόκολλα όπως HTTP, HTTPS, FTP, FTPS.
  • Και τα δύο εργαλεία κάνουν λήψη αρχείων από το Διαδίκτυο.
  • Και τα δύο εργαλεία υποστηρίζουν cookie HTTP.
  • Και τα δύο εργαλεία υποστηρίζουν την έξοδο σε ένα αρχείο.
  • Τόσο δωρεάν όσο και ενεργά αναπτυγμένα εργαλεία.
  • Και τα δύο εργαλεία υποστηρίζουν μεταφορές συνεχίσεων.
  • Και τα δύο εργαλεία υποστηρίζουν HTTP POST.

Διαφορές μεταξύ wget και cURL

Ακολουθούν μερικές από τις διαφορές μεταξύ του curl και του wget:

  • Το Wget είναι ένα απλό βοηθητικό πρόγραμμα μεταφοράς, ενώ το curl προσφέρει πολλά περισσότερα.
  • Το Curl παρέχει τη βιβλιοθήκη libcurl, η οποία μπορεί να επεκταθεί σε εφαρμογές GUI. Το Wget, από την άλλη πλευρά, είναι ένα απλό βοηθητικό πρόγραμμα γραμμής εντολών.
  • Το Wget υποστηρίζει λιγότερα πρωτόκολλα σε σύγκριση με το cURL.
  • Οι αναδρομικές λήψεις δεν υποστηρίζονται στο curl.
  • Το Wget είναι εγγενώς διαθέσιμο σε συστήματα Linux, ενώ το cURL είναι άμεσα διαθέσιμο σε συστήματα Windows.
  • Το cURL υποστηρίζει πολλαπλές παράλληλες μεταφορές.
  • Το cURL εκτελεί αποσυμπίεση HTTP με κωδικοποίηση μεταφοράς, ενώ το wget όχι.
  • Το cURL υποστηρίζει αμφίδρομη HTTP ενώ το wget προσφέρει ένα απλό HTTP POST.
  • Το cURL υποστηρίζει περισσότερες μεθόδους συγγραφής HTTP σε σύγκριση με το wget.
  • Το Wget δεν υποστηρίζει SOCKS.
  • Το Wget απαιτεί εγκατάσταση του gnulib.
  • Σε αντίθεση με το curl, λειτουργίες όπως τα cookie, οι χρονικές σημάνσεις και οι ανακατευθύνσεις παρακολούθησης είναι ενεργοποιημένες από προεπιλογή στο wget. Το cURL απαιτεί να καθορίζεται ρητά το καθένα.

συμπέρασμα

Αυτό το σεμινάριο επικεντρώθηκε στις ομοιότητες και τις διαφορές μεταξύ του cURL. Αν και μπορεί να φαίνεται ότι το cURL είναι η ανώτερη επιλογή, υπάρχουν περιπτώσεις όπου το wget είναι η καλύτερη επιλογή.

Η συμβουλή μου είναι να επιλέξετε αυτό που σας ταιριάζει.