Mengenai pemungutan suara untuk ditutup sebagai berbasis opini: bagaimana cara menanyakan tentang perbedaan antara dua alat mendorong jawaban berdasarkan opini?
Michael Martin-Smucker
1
@ MichaelMartin-Smucker "Seandainya saya perlu mengunduh halaman web katakanlah www.google.com, haruskah saya mencari wget atau ikal?" apa itu kalau bukan berbasis opini?
muru
2
@uru, Itu tergantung pada apa yang Anda maksud dengan "mengunduh halaman web". Jika maksud Anda mengirim permintaan http dan menerima kembali hasilnya, curl sangat ideal. Jika maksud Anda mengunduh laman, laman lain yang ditautkan, dan aset terkait, curl tidak akan berfungsi, dan wget adalah satu-satunya opsi. Ada perbedaan faktual di antara mereka yang membuat ini bukan berdasarkan pendapat.
barbekyu
3
@uru Saya kira kita hanya memiliki interpretasi berbeda dari sentimen di balik pertanyaan. Dalam interpretasi saya, sentimennya adalah: "Saya pernah mendengar tentang dua alat ini yang tampaknya melakukan hal yang sama. Apa perbedaan di antara mereka, dan kapan saya harus memilih satu di antara yang lain? Bagaimana dalam kasus khusus ini?" ... yang sepertinya pertanyaan yang masuk akal bagi saya.
Michael Martin-Smucker
Jawaban:
33
Setelah Anda mendefinisikan "penggunaan yang tepat", gunakan wget.
Mengapa? Itu sebabnya:
Rekursif! Sisi kuat utama wget dibandingkan dengan curl adalah kemampuannya untuk mengunduh secara rekursif, atau bahkan hanya mengunduh segala sesuatu yang disebut dari sumber daya jarak jauh, baik itu halaman HTML atau daftar direktori FTP.
perpustakaan . curldidukung oleh libcurl- pustaka lintas platform dengan API stabil yang dapat digunakan oleh setiap orang. Perbedaan ini besar karena ia menciptakan sikap yang sama sekali berbeda tentang bagaimana melakukan sesuatu secara internal. Juga sedikit lebih sulit untuk membuat perpustakaan daripada alat baris perintah "belaka".
pipa . curlbekerja lebih seperti catperintah Unix tradisional , ia mengirim lebih banyak barang stdout, dan membaca lebih banyak dari stdincara "semuanya pipa". wgetlebih mirip cp, menggunakan analog yang sama.
Tembakan tunggal . curlpada dasarnya dibuat untuk melakukan transfer data single-shot. Ini hanya mentransfer URL yang ditentukan pengguna, dan tidak mengandung logika pengunduhan rekursif atau pengurai HTML apa pun.
Lebih banyak protokol . curlmendukung FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMB / CIFS, SMTP, RTMP dan RTSP. Wget hanya mendukung HTTP, HTTPS, dan FTP.
Lebih portabel . curlmembangun dan menjalankan lebih banyak platform dari pada wget. Sebagai contoh: OS / 400, TPF dan platform lebih "eksotis" lainnya yang bukan klon Unix.
Lebih banyak perpustakaan SSL dan dukungan SSL . curldapat dibangun dengan satu dari sebelas (11!) perpustakaan SSL / TLS yang berbeda, dan ia menawarkan lebih banyak kontrol dan dukungan yang lebih luas untuk perincian protokol. curlmendukung pinning kunci publik.
HTTP auth . curlmendukung lebih banyak metode otentikasi HTTP, terutama melalui proxy HTTP: Basic, Digest, NTLM dan Negotiate
SOCKS . curlmendukung beberapa versi protokol SOCKS untuk akses proxy
Dua arah . curlmenawarkan kemampuan mengunggah dan mengirim. wgethanya menawarkan dukungan HTTP POST biasa.
HTTP multipart / pengiriman formulir data , yang memungkinkan pengguna untuk melakukan "unggah" HTTP dan secara umum meniru browser dan melakukan otomatisasi HTTP ke tingkat yang lebih luas
curlmendukung gzipdan mengembangkan Content-Encoding dan melakukan dekompresi otomatis
curl menawarkan dan melakukan dekompresi HTTP Transfer-Encoded, wget tidak
curl mendukung HTTP / 2 dan terhubung dengan tumpukan ganda menggunakan Happy Eyeballs
Jauh lebih banyak aktivitas pengembang . Meskipun hal ini dapat diperdebatkan, saya mempertimbangkan tiga metrik di sini: aktivitas milis, frekuensi kode sumber komit dan frekuensi rilis. Siapa pun yang mengikuti kedua proyek ini dapat melihat bahwa proyek curl memiliki kecepatan yang jauh lebih tinggi di semua bidang ini, dan sudah demikian selama 10+ tahun. Bandingkan dengan openhub
wget
wgetadalah baris perintah saja. Tidak ada perpustakaan.
Rekursif ! wgetSisi kuat utama dibandingkan dengan curl adalah kemampuannya untuk mengunduh secara rekursif, atau bahkan hanya mengunduh segala sesuatu yang disebut dari sumber daya jarak jauh, baik itu halaman HTML atau daftar direktori FTP.
Yang lebih tua . wgettelah melacak kembali ke 1995, sementara curldapat dilacak kembali tidak lebih awal dari akhir tahun 1996.
GPL . wgetadalah 100% GPL v3. curl adalah lisensi MIT.
GNU . wgetadalah bagian dari proyek GNU dan semua hak cipta diberikan kepada FSF. Proyek curl sepenuhnya berdiri sendiri dan independen tanpa organisasi pengasuhan sama sekali dengan hampir semua hak cipta yang dimiliki oleh Daniel.
wgettidak memerlukan opsi tambahan untuk hanya mengunduh URL jarak jauh ke file lokal, saat curlmemerlukan -oatau -O.
wget mendukung Daftar Sufiks Publik untuk menangani domain cookie, curl tidak.
wget hanya mendukung GnuTLS atau OpenSSL untuk dukungan SSL / TLS
wget hanya mendukung otentikasi Dasar sebagai satu-satunya jenis otentikasi melalui proxy HTTP
wget tidak memiliki dukungan SOCKS
Kemampuannya untuk pulih dari transfer yang rusak sebelum waktunya dan melanjutkan pengunduhan tidak memiliki rekanan dalam ikal.
wget dapat diketik dengan hanya menggunakan tangan kiri pada keyboard qwerty!
"Proyek curl sepenuhnya berdiri sendiri dan independen tanpa organisasi pengasuhan sama sekali dengan hampir semua hak cipta yang dimiliki oleh Daniel." Tidak yakin itu hal yang buruk ...
barbecue
"Kemampuannya untuk pulih dari transfer yang rusak sebelum waktunya dan melanjutkan pengunduhan tidak memiliki mitra dalam ikal." Apakah saya salah mengerti kalimat ini? Tidak curl -C -melanjutkan unduhan yang rusak?
Siyuan Ren
1
Mengapa Anda merekomendasikan wget ? Bahkan setelah melihat perbandingan yang Anda tulis sendiri, ikal terdengar jauh lebih unggul. wget can be typed in using only the left hand on a qwerty keyboard!, WTF ?? wget requires no extra options to simply download a remote URL to a local file, while curl requires -o or -O.
Anmol Singh Jaggi
2
Ukuran juga penting: pada gambar ubuntu baru, ukuran wget adalah 2M vs ikal 5M dikemas (dengan deps, x3 total dibongkar)
Eran W
19
Ada banyak alat yang dapat men-download seperti curl, snarf, wget, pavuk, fget, fetch, lftp, aria2, HTTrackdll Gunakan sesuai dengan kebutuhan Anda dan yang fitur yang ingin Anda gunakan bersama dengan men-download. Periksa tabel fitur dan gunakan yang sesuai.
Ikal:
Curl mendukung lebih banyak protokol FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMP dan RTSP
Curl mendukung lebih banyak perpustakaan SSL
Curl mendukung lebih banyak metode otentikasi HTTP, terutama melalui proxy HTTP: Basic, Digest, NTLM dan Negotiate
Curl ditenagai oleh libcurl - pustaka lintas platform dengan API stabil yang dapat digunakan oleh setiap orang
Wget:
Sementara wget mendukung HTTP, HTTPS dan FTP
Wget hanya mendukung GnuTLS atau OpenSSL untuk dukungan SSL / TLS
Wget hanya mendukung otentikasi Dasar sebagai satu-satunya jenis otentikasi atas proxy HTTP
Wget adalah alat baris perintah saja, ia tidak memiliki perpustakaan.
"Wget adalah alat baris perintah hanya itu yang memiliki perpustakaan." Saya tidak mengerti kalimat itu.
Lucio
3
Mereka memiliki banyak fungsi yang sama, tetapi curlmemiliki lebih banyak opsi. Untuk wgetitu kadang-kadang mungkin cukup untuk membuka man wget, tetapi untuk curlsaya perlu mempelajari halaman web ini di browser. Saya percaya apa pun yang dapat dilakukan oleh peramban Anda, juga curldapat melakukannya.
Ada perbedaan lain antara wget dan curl yang menurut saya penting.
Wget adalah utilitas baris perintah yang berdiri sendiri yang dimaksudkan terutama untuk mengambil konten internet dengan cepat dan sederhana.
Curl di sisi lain pada dasarnya adalah ujung depan terminal untuk perpustakaan libcurl yang kuat. Libcurl menyediakan seperangkat alat yang sangat kuat untuk bekerja dengan URL dalam semua bentuk dan rasanya, dan tersedia untuk hampir semua bahasa dan platform. Curl pada dasarnya memberi Anda kemampuan untuk menggunakan perpustakaan ini dalam skrip shell.
Jawaban:
Setelah Anda mendefinisikan "penggunaan yang tepat", gunakan
wget
.Mengapa? Itu sebabnya:
Rekursif! Sisi kuat utama wget dibandingkan dengan curl adalah kemampuannya untuk mengunduh secara rekursif, atau bahkan hanya mengunduh segala sesuatu yang disebut dari sumber daya jarak jauh, baik itu halaman HTML atau daftar direktori FTP.
Tak tahu malu disalin dari sini
curl
perpustakaan .
curl
didukung olehlibcurl
- pustaka lintas platform dengan API stabil yang dapat digunakan oleh setiap orang. Perbedaan ini besar karena ia menciptakan sikap yang sama sekali berbeda tentang bagaimana melakukan sesuatu secara internal. Juga sedikit lebih sulit untuk membuat perpustakaan daripada alat baris perintah "belaka".pipa .
curl
bekerja lebih seperticat
perintah Unix tradisional , ia mengirim lebih banyak barangstdout
, dan membaca lebih banyak daristdin
cara "semuanya pipa".wget
lebih miripcp
, menggunakan analog yang sama.Tembakan tunggal .
curl
pada dasarnya dibuat untuk melakukan transfer data single-shot. Ini hanya mentransfer URL yang ditentukan pengguna, dan tidak mengandung logika pengunduhan rekursif atau pengurai HTML apa pun.Lebih banyak protokol .
curl
mendukung FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMB / CIFS, SMTP, RTMP dan RTSP. Wget hanya mendukung HTTP, HTTPS, dan FTP.Lebih portabel .
curl
membangun dan menjalankan lebih banyak platform dari padawget
. Sebagai contoh: OS / 400, TPF dan platform lebih "eksotis" lainnya yang bukan klon Unix.Lebih banyak perpustakaan SSL dan dukungan SSL .
curl
dapat dibangun dengan satu dari sebelas (11!) perpustakaan SSL / TLS yang berbeda, dan ia menawarkan lebih banyak kontrol dan dukungan yang lebih luas untuk perincian protokol.curl
mendukung pinning kunci publik.HTTP auth .
curl
mendukung lebih banyak metode otentikasi HTTP, terutama melalui proxy HTTP: Basic, Digest, NTLM dan NegotiateSOCKS .
curl
mendukung beberapa versi protokol SOCKS untuk akses proxyDua arah .
curl
menawarkan kemampuan mengunggah dan mengirim.wget
hanya menawarkan dukungan HTTP POST biasa.HTTP multipart / pengiriman formulir data , yang memungkinkan pengguna untuk melakukan "unggah" HTTP dan secara umum meniru browser dan melakukan otomatisasi HTTP ke tingkat yang lebih luas
curl
mendukunggzip
dan mengembangkan Content-Encoding dan melakukan dekompresi otomatiscurl
menawarkan dan melakukan dekompresi HTTP Transfer-Encoded, wget tidakcurl
mendukung HTTP / 2 dan terhubung dengan tumpukan ganda menggunakan Happy EyeballsJauh lebih banyak aktivitas pengembang . Meskipun hal ini dapat diperdebatkan, saya mempertimbangkan tiga metrik di sini: aktivitas milis, frekuensi kode sumber komit dan frekuensi rilis. Siapa pun yang mengikuti kedua proyek ini dapat melihat bahwa proyek curl memiliki kecepatan yang jauh lebih tinggi di semua bidang ini, dan sudah demikian selama 10+ tahun. Bandingkan dengan openhub
wget
wget
adalah baris perintah saja. Tidak ada perpustakaan.Rekursif !
wget
Sisi kuat utama dibandingkan dengan curl adalah kemampuannya untuk mengunduh secara rekursif, atau bahkan hanya mengunduh segala sesuatu yang disebut dari sumber daya jarak jauh, baik itu halaman HTML atau daftar direktori FTP.Yang lebih tua .
wget
telah melacak kembali ke 1995, sementaracurl
dapat dilacak kembali tidak lebih awal dari akhir tahun 1996.GPL .
wget
adalah 100% GPL v3. curl adalah lisensi MIT.GNU .
wget
adalah bagian dari proyek GNU dan semua hak cipta diberikan kepada FSF. Proyek curl sepenuhnya berdiri sendiri dan independen tanpa organisasi pengasuhan sama sekali dengan hampir semua hak cipta yang dimiliki oleh Daniel.wget
tidak memerlukan opsi tambahan untuk hanya mengunduh URL jarak jauh ke file lokal, saatcurl
memerlukan-o
atau-O
.wget
mendukung Daftar Sufiks Publik untuk menangani domain cookie, curl tidak.wget
hanya mendukung GnuTLS atau OpenSSL untuk dukungan SSL / TLSwget
hanya mendukung otentikasi Dasar sebagai satu-satunya jenis otentikasi melalui proxy HTTPwget
tidak memiliki dukungan SOCKSKemampuannya untuk pulih dari transfer yang rusak sebelum waktunya dan melanjutkan pengunduhan tidak memiliki rekanan dalam ikal.
wget
dapat diketik dengan hanya menggunakan tangan kiri pada keyboard qwerty!sumber
curl -C -
melanjutkan unduhan yang rusak?wget can be typed in using only the left hand on a qwerty keyboard!
, WTF ??wget requires no extra options to simply download a remote URL to a local file, while curl requires -o or -O.
Ada banyak alat yang dapat men-download seperti
curl
,snarf
,wget
,pavuk
,fget
,fetch
,lftp
,aria2
,HTTrack
dll Gunakan sesuai dengan kebutuhan Anda dan yang fitur yang ingin Anda gunakan bersama dengan men-download. Periksa tabel fitur dan gunakan yang sesuai.Ikal:
Wget:
Sumber daya penting untuk info lebih lanjut:
Ini penjelasan yang bagus tentang curl vs Wget .
Daftar fitur: Bandingkan Fitur cURL dengan Alat Unduhan Lainnya
Detail fitur yang didukung curl: Fitur - apa yang dapat dilakukan curl
Detail fitur yang didukung wget : fitur wget
sumber
Mereka memiliki banyak fungsi yang sama, tetapi
curl
memiliki lebih banyak opsi. Untukwget
itu kadang-kadang mungkin cukup untuk membukaman wget
, tetapi untukcurl
saya perlu mempelajari halaman web ini di browser. Saya percaya apa pun yang dapat dilakukan oleh peramban Anda, jugacurl
dapat melakukannya.sumber
Ada perbedaan lain antara wget dan curl yang menurut saya penting.
Wget adalah utilitas baris perintah yang berdiri sendiri yang dimaksudkan terutama untuk mengambil konten internet dengan cepat dan sederhana.
Curl di sisi lain pada dasarnya adalah ujung depan terminal untuk perpustakaan libcurl yang kuat. Libcurl menyediakan seperangkat alat yang sangat kuat untuk bekerja dengan URL dalam semua bentuk dan rasanya, dan tersedia untuk hampir semua bahasa dan platform. Curl pada dasarnya memberi Anda kemampuan untuk menggunakan perpustakaan ini dalam skrip shell.
sumber