Apa perbedaan antara curl dan wget?

258

Saya ingin tahu perbedaan antara curldan wget. Keduanya digunakan untuk mendapatkan file dan dokumen tetapi apa perbedaan utama di antara mereka.

Mengapa ada dua program yang berbeda?

danau
sumber
5
Perbedaan utama adalah bahwa wget digunakan untuk mengunduh berbagai hal sementara curl digunakan untuk menguji komunikasi dengan menggunakan protokol tertentu.
Pithikos
2
Dari curlpenulis: daniel.haxx.se/docs/curl-vs-wget.html
Vanni

Jawaban:

265

Perbedaan utama adalah:

  • wgetSisi kuat utama dibandingkan curladalah kemampuannya untuk mengunduh secara rekursif.
  • wgetadalah baris perintah saja. Tidak ada lib atau apa pun, tetapi curlfitur didukung oleh libcurl.
  • curlmendukung FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMPdan RTSP. wgetmendukung HTTP, HTTPSdan FTP.
  • curlmembangun dan menjalankan lebih banyak platform dari pada wget.
  • wgetdirilis di bawah lisensi perangkat lunak bebas copyleft (GNU GPL). curldirilis di bawah lisensi permisif perangkat lunak gratis (turunan MIT).
  • curlmenawarkan kemampuan mengunggah dan mengirim. wgethanya menawarkan dukungan HTTP POST biasa.

Anda dapat melihat detail lebih lanjut di tautan berikut:

curl vs Wget

Saeed Zarinfam
sumber
1
Terima kasih, ini persis seperti yang saya pikirkan selama beberapa jam. Saya menggunakan wget untuk melakukan laba-laba rekursif pada sebuah situs, sepertinya terhenti pada halaman yang memiliki trilyun bazillion link di dalamnya. Kenyataannya itu berjalan pada CPU 100% pada satu inti. Berharap ada sesuatu yang lebih baik yang melakukan hal multicore bermodel baru yang telah saya dengar.
Brian Topping
1
Salah satu hal wgetyang terlewatkan dari jawaban ini adalah kemampuan http mirroring (atau 'spidering'). curlsangat baik dalam hal apa yang dilakukannya, tetapi itu sendiri tidak dimaksudkan untuk digunakan untuk mencerminkan situs web.
jsbillings
Bagaimana dengan wput menjadi alias, mendukung ftp.
mckenzm
1
Frasa-frasa ini tidak masuk akal: "dan semua hak cipta diberikan kepada FSF", "sepenuhnya berdiri sendiri dan independen tanpa organisasi pengasuhan sama sekali". Sudah jelas bahwa pembuat CURL adalah pemilik hak cipta dari itu. Sudah jelas bahwa penulis wget adalah pemilik hak cipta dari itu. Tetapi keduanya gratis seperti dalam perangkat lunak kebebasan. Anda dapat mengatakan sebaliknya bahwa wget berada di bawah lisensi copyleft, dan cURL di bawah lisensi permisif.
Valerio Bozz
1
@ValerioBozz: Sebenarnya tidak. Baik curl maupun wget adalah proyek komunitas. Dengan curl, setiap orang memiliki hak cipta atas kode yang dikontribusikannya. Dengan Wget, seperti kebanyakan program GNU lainnya, berbagai penulis memberikan hak cipta mereka kepada FSF. Artinya, mereka tidak memiliki kode itu lagi. Ini untuk memungkinkan FSF menegakkan copyleft secara ketat dan mengubah kode jika diperlukan.
darnir
57

Dalam beberapa kata:

  • wget adalah alat untuk mengunduh file dari server
  • curl adalah alat yang memungkinkan Anda bertukar permintaan / tanggapan dengan server

wget

Wget hanya memungkinkan Anda mengunduh file dari HTTP/ HTTPSatau FTPserver. Anda memberikannya tautan dan itu secara otomatis mengunduh file di mana tautan menunjuk. Itu membangun permintaan secara otomatis.

ikal

Keriting berbeda dengan wget memungkinkan Anda membangun permintaan seperti yang Anda inginkan . Ini memberikan banyak kebebasan kepada pengguna dan membuat alat debugging yang luar biasa. Tambahkan ke bahwa perbedaan kunci lainnya antara keduanya: kebanyakan protokol didukung. Mendukung Curl FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP, RTSPdan URI. Kombinasikan dua poin utama ini dan Anda memiliki alat yang luar biasa untuk menguji protokol, konfigurasi server pengujian, dll.

Seperti yang banyak dikatakan, Anda dapat mengunduh file dengan curl. Namun itu hanya berguna jika Anda ingin mengunduh file dari server yang menggunakan protokol yang tidak didukung wget.

Pithikos
sumber
2
Sebenarnya wgetjuga mengikuti redirect kemudian menyimpan respons yang berbeda curl. Keduanya dapat mencapai kebalikan dari perilaku default wget -qO - http://google.co.uk/ ataucurl http://google.co.uk/ > index.html
Matt
1
@ mtm curl http://google.co.uk/ > index.htmltidak menggunakan fungsionalitas inbuilt. Bagaimanapun perbedaan utama adalah tujuan dari setiap alat dibuat. Tidak dapat disangkal bahwa alat berevolusi dan berkali-kali menyimpang dari lintasan awal mereka.
Pithikos
1
@ mtm curl http://google.co.uk -o index.htmlakan menggunakan internal curl alih-alih pengalihan output shell dengan >.
Petrus Repo
19

Sebenarnya, perbedaan utama adalah bahwa curltermasuk perpustakaan ( libcurl), dan perpustakaan itu banyak digunakan oleh aplikasi lain. wgetadalah standalone.

sendmoreinfo
sumber