Curl ve wget arasındaki fark nedir? [kapalı]


38

Bunların her ikisi de curlve wgetdosya indiren vb için kullanımıdır üst üste kullanmak için herhangi bir neden var mı?


1
"Uygun kullanımı" tanımlayın
AB

12
Oylama ile ilgili düşünceye dayalı olarak yaklaşma konusunda: iki araç arasındaki farkı sorma düşünceye dayalı cevapları nasıl teşvik eder?
Michael Martin-Smucker 25:15

1
@ MichaelMartin-Smucker "Bir web sayfasını indirmem gerektiğini varsayalım, www.google.com diyelim, wget mı yoksa curl mu aramalıyım?" fikir temelli değilse bu nedir?
muru

2
@muru, "Web sayfasını indir" ile ne demek istediğine bağlı. Bir http isteği göndermek ve sonuçları geri almak istiyorsanız, curl idealdir. Sayfayı indirmeyi kastediyorsanız, bağlantı verdiği diğer sayfalar ve ilgili varlıklar, kıvrılma çalışmaz ve wget tek seçenektir. Bu düşünceyi temel almayan, aralarında gerçekler olan farklılıklar vardır.
barbekü

3
@muru sanırım sorunun arkasındaki duyarlılık hakkında farklı yorumlara sahibiz. Benim yorumuma göre, duygu şu: "Aynı şeyi yapan bu iki aracı duydum. Aralarındaki fark nedir ve ne zaman diğerini seçmeliyim? Bu özel durumda ne olacak?" ... bana makul bir soru gibi geliyor.
Michael Martin-Smucker 27:15

Yanıtlar:


33

"Uygun kullanımı" tanımladıktan sonra, kullanın wget.

Neden? Bu yüzden:

Recursive! wget'ın curl ile karşılaştırıldığında en güçlü tarafı, yinelemeli olarak indirme kabiliyeti, hatta uzak bir kaynaktan atıfta bulunulan her şeyi bir HTML sayfası veya bir FTP dizini listesi olarak indirme yeteneğidir.


Utanmaz buradan kopyalandı

curl

  • kütüphane . curltarafından desteklenmektedir libcurl- herkesin kullanabileceği istikrarlı bir API içeren bir platformlar arası kütüphane. Bu fark, işlerin dahili olarak nasıl yapılacağı konusunda tamamen farklı bir tutum yarattığı için büyüktür. Bir kitaplık yapmak "salt" komut satırı aracından çok daha zordur.

  • borular . curlgeleneksel Unix catkomutuna benzer şekilde çalışır, daha fazla şey gönderir stdoutve stdin"her şey bir boru" şeklinde okur . Aynı analogu kullanarak wgetdaha benzer cp.

  • Tek atış . curlTemel olarak tek atış veri aktarımı yapmak için yapılır. Yalnızca kullanıcının belirlediği URL’leri aktarır ve özyinelemeli indirme mantığı veya herhangi bir HTML ayrıştırıcısı içermez.

  • Daha fazla protokol . curlFTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, DOSYA, POP3, IMAP, SMB / CIFS, SMTP, RTMP ve RTSP’yi destekler. Wget yalnızca HTTP, HTTPS ve FTP'yi destekler.

  • Daha taşınabilir . curlondan daha fazla platformda çalışır ve çalışır wget. Örneğin: OS / 400, TPF ve düz ileri Unix klonları olmayan diğer "egzotik" platformlar.

  • Daha fazla SSL kütüphanesi ve SSL desteği . curlon bir (11!) farklı SSL / TLS kütüphanesinden biriyle oluşturulabilir ve protokol ayrıntıları için daha fazla kontrol ve daha geniş destek sunar. curlortak anahtar sabitlemeyi destekler.

  • HTTP auth . curlözellikle HTTP proxy'lerinde daha fazla HTTP kimlik doğrulama yöntemini destekler: Temel, Özet, NTLM ve Anlaşma

  • ÇORAPLAR . curlProxy erişimi için çeşitli SOCKS protokol sürümlerini destekler

  • Çift yönlü . curlyükleme ve gönderme yetenekleri sunar. wgetsadece sade HTTP POST desteği sunar.

  • Kullanıcıların HTTP "yükleme" yapmasına ve genel olarak tarayıcıları taklit etmesine ve daha geniş ölçüde HTTP otomasyonu yapmasına izin veren HTTP çoklu-form / veri gönderme

  • curlgzipContent-Encoding özelliğini destekler ve şişirir ve otomatik dekompresyon yapar

  • curl Transfer Kodlamalı HTTP'nin dekompresyonunu sunar ve gerçekleştirir, wget değil

  • curl HTTP / 2'yi destekler ve Happy Eyeballs kullanarak çift yığınlı bağlantı yapar

  • Çok daha fazla geliştirici etkinliği . Bu tartışılabilir olsa da, burada üç ölçüm yapmayı düşünüyorum: postalama listesi etkinliği, kaynak kodu işleme sıklığı ve yayınlanma sıklığı. Bu iki projeyi takip eden herkes, kıvrılma projesinin tüm bu alanlarda çok daha yüksek bir hızda olduğunu görebilir ve 10 yıldan fazla bir süredir böyle devam eder. Openhub ile karşılaştır


wget

  • wgetsadece komut satırıdır. Kütüphane yok.

  • Özyinelemeli ! wgetcurl ile karşılaştırıldığında en güçlü tarafı, yinelemeli indirme, hatta uzak bir kaynaktan atıfta bulunulan her şeyi bir HTML sayfası veya bir FTP dizini listesi indirme yeteneğidir.

  • Yaşlı . wget1995’e kadar izleri var curl, 1996’nın sonlarından daha önce geriye doğru izlenebilir.

  • GPL . wget% 100 GPL v3'tür. kıvrılma MIT lisanslıdır.

  • GNU . wgetGNU projesinin bir parçasıdır ve tüm telif hakları FSF'ye verilmiştir. Curl projesi tamamen tek başına ve bağımsız olup, Daniel'in sahip olduğu hemen hemen tüm telif hakları ile hiçbir organizasyon ebeveynliği bulunmuyor.

  • wgetise basitçe, yerel bir dosyaya uzak URL'yi indirmek için hiçbir ekstra seçenekler gerektirir curlgerektirir -oveya -O.

  • wget Çerez etki alanlarını işlemek için Genel Son Ekler Listesini destekler, kıvrılmaz.

  • wget SSL / TLS desteği için yalnızca GnuTLS veya OpenSSL'yi destekler

  • wget HTTP proxy üzerinden yalnızca auth tipi olarak yalnızca Basic auth'yi destekler

  • wget SOCKS desteği yok

  • Erken kırılmış bir transferden kurtarma ve indirmeye devam etme kabiliyetinin hiçbir karşılığı yoktur.

  • wget Bir qwerty klavyede sadece sol el kullanılarak yazılabilir!


1
Evet, wget yansıtma için harika!
joeytwiddle

1
“Curl projesi, tamamen Daniel'in sahip olduğu hemen hemen tüm telif haklarına sahip hiçbir organizasyon ebeveynliği olmadan tamamen bağımsız ve bağımsız.” Bunun kötü bir şey olduğundan emin değilim ...
barbekü

"Önceden kırılmış bir transferden kurtarma ve indirmeye devam etme becerisinin kıvrılmada karşılığı yok" Bu cümleyi yanlış anladım mı? curl -C -Bozuk indirme işlemine devam etmiyor mu?
Siyuan Ren

1
Neden wget tavsiye edersiniz ? Kendi yazdığınız karşılaştırmalara baktıktan sonra bile, kıvrılma sesleri çok daha üstündür. 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
Büyüklük de önemlidir: taze bir ubuntu görüntüde, wget boyutu 2M'e karşı kıvrılır 5M doludur (deps, toplam paketlenmemiş x3)
Eran W

19

Gibi indirebilirsiniz birçok araç vardır curl, snarf, wget, pavuk, fget, fetch, lftp, aria2, HTTrackvb kullanın İhtiyaçlarınız ve hangi indirmekte birlikte kullanmak istediğiniz özelliği uyarınca bu. Özellik tablosunu kontrol edin ve uygun şekilde kullanın.

Kıvırmak:

  • Curl desteği daha fazla protokol FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, DOSYA, POP3, IMAP, SMTP, RTMP ve RTSP
  • Curl, daha fazla SSL kütüphanesini destekliyor
  • Curl, özellikle HTTP proxy'lerinde daha fazla HTTP kimlik doğrulama yöntemini destekler: Temel, Özet, NTLM ve Anlaşma
  • Curl, herkesin kullanabileceği istikrarlı bir API içeren libcurl -a çapraz platform kütüphanesi tarafından desteklenmektedir.

Wget:

  • Wget HTTP, HTTPS ve FTP'yi desteklerken
  • Wget, SSL / TLS desteği için yalnızca GnuTLS veya OpenSSL’yi destekliyor
  • Wget, HTTP Proxy üzerindeki tek kimlik doğrulama türü olarak yalnızca Temel Kimlik Doğrulamasını destekler.
  • Wget sadece komut satırı aracıdır, kütüphanesi yoktur.

Daha fazla bilgi için Önemli Kaynaklar:


"wget ​​komut satırı aracı sadece kütüphane biliyor." Bu çizgiyi anlamıyorum.
Lucio

3

Çok fazla işlevselliğe sahipler, ancak curldaha fazla seçeneğe sahipler . İçin wgetzaman zaman yaprak through yeterli olabilir man wget, fakat için curlEğitim gereken bu web sayfasını bir tarayıcıda. Tarayıcınızın yapabileceği, curlyapabileceği her şeyi inanıyorum .


2

Wget ve curl arasında önemli olduğunu düşündüğüm başka bir fark var.

Wget, öncelikli olarak internet içeriğini hızlı ve kolay bir şekilde almayı amaçlayan tek başına bir komut satırı yardımcı programıdır.

Curl, diğer taraftan, temelde güçlü libcurl kütüphanesi için bir terminal ön ucu. Libcurl, URL'lerle tüm form ve tatlarında çalışmak için çok güçlü araçlar sağlar ve hemen hemen tüm diller ve platformlar için kullanılabilir. Kıvrılma temel olarak, bu kütüphaneyi kabuk komut dosyalarında kullanabilmenizi sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.