Was ist der Unterschied zwischen Curl und Wget?


258

Ich bin gespannt auf den Unterschied zwischen curlund wget. Beide werden verwendet, um Dateien und Dokumente zu erhalten, aber was ist der Hauptunterschied zwischen ihnen.

Warum gibt es zwei verschiedene Programme?


5
Der Hauptunterschied besteht darin, dass wget zum Herunterladen von Dingen verwendet wird, während curl zum Testen der Kommunikation mithilfe eines bestimmten Protokolls verwendet wird.
Pithikos


Antworten:


265

Die Hauptunterschiede sind:

  • wgetDie größte Stärke im Vergleich zu curlist die Fähigkeit zum rekursiven Herunterladen.
  • wgetist nur Befehlszeile. Es gibt keine lib oder so, aber curldie Funktionen werden von libcurl unterstützt.
  • curlunterstützt FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMPund RTSP. wgetunterstützt HTTP, HTTPSund FTP.
  • curlbaut und läuft auf mehr Plattformen als wget.
  • wgetwird unter einer freien Software-Copyleft-Lizenz (die GNU GPL) veröffentlicht. curlwird unter einer Lizenz für freie Software veröffentlicht (ein MIT-Derivat).
  • curlBietet Upload- und Sendefunktionen. wgetBietet nur einfache HTTP-POST-Unterstützung.

Weitere Details finden Sie unter folgendem Link:

Locken gegen Wget


1
Danke, genau darüber habe ich mich ein paar Stunden lang gewundert. Ich habe wget verwendet, um eine rekursive Spinne auf einer Site zu erstellen, und scheint auf einer Seite mit elf Milliarden Links stehen geblieben zu sein. In Wirklichkeit läuft es mit 100% CPU auf einem Kern. Ich hatte gehofft, dass es etwas Besseres gibt, das das neue Multicore-Ding kann, von dem ich gehört habe.
Brian Topping

1
Eines der Dinge wget, die in dieser Antwort nicht erwähnt werden, ist die http-Spiegelung (oder "Spidering" -Fähigkeit). curlist sehr gut darin, was es tut, aber es allein ist nicht dazu gedacht, eine Website zu spiegeln.
Jsbillings

Was ist mit wput als Alias, der ftp unterstützt?
McKenzm

1
Diese Ausdrücke haben keinen Sinn: "und alle Urheberrechte sind an die FSF übertragen", "ist völlig eigenständig und unabhängig, ohne dass eine Organisation Eltern hat". Es ist offensichtlich, dass der Autor von cURL der Inhaber des Urheberrechts ist. Es ist offensichtlich, dass der Autor von wget der Inhaber des Copyrights ist. Aber beide sind frei wie in Freiheitssoftware. Sie können stattdessen sagen, dass wget unter einer Copyleft-Lizenz und cURL unter einer zulässigen Lizenz steht.
Valerio Bozz

1
@ValerioBozz: Eigentlich nein. Sowohl curl als auch wget sind Community-Projekte. Mit curl besitzt jede Person das Urheberrecht an dem Code, den sie beisteuert. Wie bei den meisten anderen GNU-Programmen geben auch bei Wget die verschiedenen Autoren ihre Urheberrechte an die FSF ab. Das heißt, sie besitzen diesen Code nicht mehr. Auf diese Weise kann die FSF Copyleft strikt durchsetzen und den Code bei Bedarf neu lizenzieren.
27.

57

In wenigen Worten:

  • wget ist ein Tool zum Herunterladen von Dateien von Servern
  • curl ist ein Tool, mit dem Sie Anfragen / Antworten mit einem Server austauschen können

wget

Mit Wget können Sie nur Dateien von einem HTTP/ HTTPSoder FTPServer herunterladen . Sie geben ihm einen Link und es lädt automatisch die Datei herunter, auf die der Link verweist. Es erstellt die Anforderung automatisch.

locken

Curl im Gegensatz zu Wget können Sie die Anfrage erstellen, wie Sie möchten . Dies gibt dem Benutzer viel Freiheit und macht ein erstaunliches Debugging-Tool. Hinzu kommt der andere entscheidende Unterschied: die Vielzahl der unterstützten Protokolle. Curl Stützen FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP, RTSPund URI. Kombinieren Sie diese beiden Schlüsselpunkte und Sie haben ein fantastisches Tool zum Testen von Protokollen, zum Testen der Serverkonfiguration usw.

Wie viele sagen, können Sie eine Datei mit Locken herunterladen. Dies ist jedoch nur nützlich, wenn Sie eine Datei von einem Server herunterladen möchten, der ein Protokoll verwendet, das von wget nicht unterstützt wird.


2
Tatsächlich wgetfolgt auch die Weiterleitung, dann speichert die Antwort anders als curl. Beide können das Gegenteil zum Standardverhalten erreichen wget -qO - http://google.co.uk/ odercurl http://google.co.uk/ > index.html
Matt

1
@mtm verwendet curl http://google.co.uk/ > index.htmljedoch keine eingebaute Funktionalität. Der Hauptunterschied ist jedoch der Zweck, für den jedes Werkzeug hergestellt wurde. Es ist nicht zu leugnen, dass sich Werkzeuge weiterentwickeln und oft von ihrer ursprünglichen Flugbahn abweichen.
Pithikos

1
@mtm curl http://google.co.uk -o index.htmlwürde die Interna von curl anstelle der Shell-Ausgabeumleitung mit verwenden >.
Petrus Repo

19

Tatsächlich besteht der Hauptunterschied darin, dass curleine Bibliothek ( libcurl) enthalten ist und diese Bibliothek von anderen Anwendungen häufig verwendet wird. wgetist eigenständig.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.