Geonode logo
Geonode Team

Geonode Team

Diperbarui: 7 Oktober 2026

Diterbitkan: 2 September 2026

curl vs wget

Jawaban jujur yang paling singkat: curl berperilaku seperti cat, sedangkan wget berperilaku seperti cp. Yang satu menampilkan hasilnya di layar, yang lain menyimpannya ke berkas. Hampir semua hal lainnya dapat disimpulkan dari hal tersebut — termasuk mengapa wget mengikuti pengalihan (redirect) sementara curl tidak, dan mengapa hanya salah satunya yang dapat melakukan mirroring seluruh situs. Panduan ini disusun berdasarkan perbandingan yang diterbitkan oleh pengelola curl sendiri, yang secara luar biasa jujur mengenai keunggulan alat lainnya, serta menambahkan perbedaan proxy yang penting jika Anda mengarahkan lalu lintas melalui salah satunya.

Dua alat baris perintah yang sama-sama mengunduh data melalui HTTP, terpasang di hampir setiap komputer, tak henti-hentinya dibandingkan, namun jarang dibedakan secara bermakna.

Sumber paling andal mengenai perbedaannya, untungnya, adalah perbandingan yang diterbitkan oleh pengelola curl sendiri — sebuah dokumen yang memuat bagian khusus mengenai hal-hal yang dilakukan wget lebih baik daripada curl. Setiap pernyataan faktual di bawah ini bersumber dari dokumen tersebut atau dari manual proyek masing-masing, bukan dari kesan pribadi siapa pun, yang penting dalam perbandingan yang sering kali ditulis berdasarkan ingatan.

Kami adalah Geonode, kami menjual proxy, dan catatan jujurnya singkat: tidak ada satu pun alat yang membutuhkan proxy untuk sebagian besar tujuan penggunaannya. Mengunduh berkas, memanggil API, memeriksa apakah suatu layanan merespons — tidak ada satupun yang memerlukan proxy. Ada perbedaan nyata dan kurang terdokumentasi antara keduanya terkait dukungan proxy, dan hal ini dibahas dalam bagian di bawah ini, tetapi jika Anda datang ke sini untuk memilih pengunduh, Anda bisa mengabaikannya.

Ringkasan yang berguna adalah bahwa alat-alat ini dibangun berdasarkan model pemikiran yang berbeda, dan hampir semua perbedaan yang terlihat di permukaan berasal dari hal tersebut. curl berperilaku seperti cat — ia mengambil sesuatu dan menuliskannya ke output standar. wget berperilaku seperti cp — ia mengambil sesuatu dan menuliskannya ke dalam file. Itulah kerangka berpikir yang digunakan oleh pengembangnya, dan begitu Anda memahaminya, pengaturan default pengalihan, perbedaan opsi, serta kemampuan rekursi tidak lagi terasa sembarangan.

Rekomendasi singkatnya, bagi siapa pun yang ingin tahu sebelum masuk ke detail: gunakan wget saat Anda ingin menyimpan file di disk, dan curl untuk hal lainnya.

Perbedaan dalam Satu Kalimat

curl bekerja, menurut pengembangnya, "seperti perintah Unix tradisional cat

". wget bekerja "lebih mirip cp

".

Perbedaan tunggal itulah yang menjelaskan sebagian besar hal yang akan dibahas selanjutnya.

Apa Artinya dalam Praktik

curl https://example.com/file.txt    # prints the contents to your terminal
wget https://example.com/file.txt    # saves file.txt to the current directory

Keduanya tidak salah. Keduanya menjawab pertanyaan yang berbeda.

Desain curl mengasumsikan Anda menginginkan datanya, dan apa yang terjadi selanjutnya adalah urusan Anda — alirkan, parsing, alihkan, atau baca. Menulis ke output standar adalah pilihan yang dapat diintegrasikan, dan itulah mengapa curl secara alami cocok dengan pipa shell.

Desain wget mengasumsikan Anda menginginkan berkasnya. Ia memilih nama berkas, membuatnya, menampilkan bilah kemajuan, dan menyelesaikannya dengan berkas di disk.

Mengapa Konsekuensinya Lebih Besar dari yang Terlihat

Begitu tugas suatu alat adalah "mengambil berkas ke dalam disk", serangkaian perilaku menjadi jelas benar: ikuti pengalihan, karena berkas telah berpindah; coba lagi jika gagal, karena tujuannya adalah berkas itu sendiri, bukan upaya tersebut; lanjutkan unduhan yang belum selesai, karena setengah berkas bukanlah hasil yang diinginkan. wget melakukan semua ini secara default.

Begitu tugas suatu alat adalah "lakukan transfer ini dan berikan hasilnya", perilaku yang benar pun berbeda: laporkan apa yang terjadi daripada memutuskan untuk saya, lakukan persis apa yang diminta, dan biarkan pemanggil yang menangani sisanya. curl melaporkan pengalihan dan berhenti, karena mengikuti pengalihan tersebut bukanlah yang Anda minta.

Tidak ada satu pun dari kedua pengaturan default tersebut yang lebih baik. Keduanya konsisten dengan tujuan yang berbeda, dan sebagian besar rasa frustrasi yang dialami orang terhadap salah satu alat tersebut berasal dari mengharapkan asumsi yang dimiliki oleh alat lainnya.

Apa yang Dilakukan curl yang Tidak Dilakukan wget

Berdasarkan perbandingan dari pengembangnya, dan daftarnya cukup panjang.

Ini Adalah Perpustakaan (Library) Terlebih Dahulu

curl menyertakan libcurl, yang digambarkan memiliki "API yang stabil yang dapat digunakan oleh siapa saja". Ini adalah perbedaan yang paling signifikan dan paling tidak terlihat dari terminal.

libcurl tertanam dalam sejumlah besar perangkat lunak — pengikatan bahasa, aplikasi, perangkat. Alat baris perintah ini, dalam arti tertentu, merupakan demonstrasi dari pustaka tersebut. wget adalah sebuah program; curl adalah program yang dibangun di atas pustaka yang digunakan oleh program-program lain.

Jika Anda pernah menggunakan fungsi cURL di PHP atau pengikatan HTTP bahasa pemrograman yang dibangun di atas libcurl, Anda telah menggunakan curl tanpa menjalankan perintah curl.

Protokol yang Jauh Lebih Banyak

Daftar yang dipublikasikan sangat panjang: "FTP(S), GOPHER(S), HTTP(S), SCP, SFTP, TFTP, TELNET, DICT, LDAP(S), MQTT, FILE, POP3(S), IMAP(S), SMB(S), SMTP(S), RTMP, RTSP, dan WS(S)".

wget mendukung HTTP, HTTPS, dan FTP. Untuk web, itu biasanya sudah cukup. Untuk apa pun yang melibatkan protokol email, SFTP, MQTT, atau WebSocket, curl adalah satu-satunya di antara keduanya yang dapat digunakan.

Versi HTTP yang Lebih Baru

curl mendukung HTTP 0.9, 1.0, 1.1, 2, dan 3. Jika Anda perlu menguji perilaku server secara khusus melalui HTTP/2 atau HTTP/3, itulah tugas curl.

Jenis Proxy Lainnya

curl mendukung proxy HTTPS serta proxy SOCKS4 dan SOCKS5. Ini termasuk di antara fitur-fitur yang dimiliki curl tetapi tidak dimiliki wget, dan hal ini memiliki konsekuensi nyata — lihat bagian tentang proxy di bawah ini.

Transfer Paralel

curl dapat menjalankan beberapa transfer secara bersamaan dengan opsi -Z. Berguna saat mengambil banyak sumber daya kecil di mana latensi saat melakukannya satu per satu menjadi faktor dominan.

Transfer Dua Arah dan Unggahan Formulir

Mengirim data, bukan hanya menerimanya. Unggahan formulir multipart, PUT, metode apa pun. wget pada dasarnya adalah alat pengunduhan; curl adalah alat transfer, dan unggahan merupakan fitur utama.

Sudah Terpasang di Lebih Banyak Mesin

curl sudah terpasang secara default di macOS serta Windows 10 dan 11. Pada mesin Windows tanpa instalasi tambahan, curl tersedia sedangkan wget umumnya tidak — hal ini lebih berpengaruh daripada yang seharusnya untuk skrip lintas platform.

Apa yang Dapat Dilakukan wget tetapi Tidak Dapat Dilakukan oleh curl

Informasi ini juga berasal dari pengembang curl sendiri, itulah yang membuat daftar ini layak dipercaya.

Pengunduhan Rekursif

"Keunggulan utama wget dibandingkan curl adalah kemampuannya untuk mengunduh secara rekursif."

Ini adalah fitur yang sangat penting dan bukan sekadar fitur kecil. wget dapat mengikuti tautan dari sebuah halaman dan mengunduh apa yang ditemukannya, hingga kedalaman yang ditentukan, sekaligus mengonversi tautan agar dapat diakses secara lokal. Menyalin situs dokumentasi untuk dibaca secara offline hanya memerlukan satu perintah.

wget -r -np -k -p https://example.com/docs/

Rekursif, tanpa direktori induk, mengonversi tautan untuk ditampilkan secara lokal, serta mengambil elemen-elemen yang diperlukan halaman seperti gambar dan lembar gaya.

curl sama sekali tidak dapat melakukan ini. curl hanya mengambil URL yang Anda berikan. Ia tidak mengurai HTML, tidak menemukan tautan, dan tidak memiliki konsep tentang sebuah situs. Jika tugas Anda adalah "menyalin bagian situs web ini", wget adalah jawabannya dan tidak ada alternatif curl yang layak dicoba.

Melanjutkan Transfer yang Terputus

wget "dapat memulihkan transfer yang terputus sebelum waktunya dan melanjutkan pengunduhan". Dengan opsi -c, pengunduhan yang terputus akan dilanjutkan dari titik di mana ia berhenti.

curl juga dapat melakukan ini dengan opsi -C -, tetapi perilaku wget terkait percobaan ulang dan kelanjutan lebih otomatis dan lebih toleran — hal ini penting ketika ukuran transfer besar dan koneksi tidak stabil.

Tidak Membutuhkan Opsi untuk Kasus yang Jelas

wget mengunduh berkas tanpa opsi apa pun. curl "membutuhkan -o atau -O" untuk menyimpan ke berkas alih-alih ke terminal.

Untuk tugas paling umum yang dilakukan siapa pun dengan kedua alat ini — mengunduh berkas ini — wget adalah perintah yang lebih singkat, dan kesederhanaan ini merupakan keunggulan nyata pada alat yang Anda gunakan setiap hari.

Pengaturan Default yang Lebih Masuk Akal untuk Mengunduh

wget "mengaktifkan lebih banyak fitur secara default: cookie, mengikuti pengalihan, dan penandaan waktu".

Penandaan waktu patut diperhatikan secara khusus: dengan opsi -N, wget hanya akan mengunduh ulang berkas jika versi di server lebih baru. Untuk sinkronisasi terjadwal sekumpulan berkas, ini adalah perilaku yang tepat, dan curl tidak memiliki setara langsung untuk hal ini.

Lisensi

wget berlisensi GPL v3; curl berlisensi MIT. Jika Anda mengintegrasikan salah satunya ke dalam produk, perbedaan lisensi ini kemungkinan akan lebih penting daripada fitur apa pun yang disebutkan di halaman ini.

Pengaturan Default yang Membuang-buang Waktu Anda

Perbedaan-perbedaan yang paling mungkin membuat sore hari Anda jadi membingungkan.

Pengalihan

wget mengikuti pengalihan secara default. curl tidak.

Inilah penyebab paling umum dari pertanyaan "mengapa curl tidak mengembalikan apa pun". Server merespons dengan kode status 301, curl melaporkannya dan berhenti, sehingga keluaran standar tampak kosong.

curl -L https://example.com/moved    # follow them
wget https://example.com/moved       # already following them

Ini bukanlah kelalaian dari curl. Mengikuti pengalihan berarti melakukan permintaan yang tidak Anda minta, ke host yang tidak Anda sebutkan, dan model kerja curl adalah melakukan apa yang diperintahkan dan melaporkan sisanya. Model kerja wget adalah mengambil berkas, dan berkas tersebut telah dipindahkan.

Tujuan Keluaran

Sudah dibahas di atas dan layak diulang karena hal ini sering membingungkan pengguna. Perintah curl URL menampilkan hasil; sedangkan wget URL menyimpannya.

Penanganan Kesalahan

Keduanya memiliki keunikan. curl menganggap status 404 sebagai transfer yang berhasil dan keluar dengan status nol — transfer berhasil, server merespons. Gunakan -f agar kesalahan HTTP menghasilkan status keluar non-nol.

wget secara default mengembalikan status keluar non-nol pada kesalahan HTTP, yang merupakan perilaku yang lebih intuitif untuk sebuah pengunduh.

Dalam skrip: curl -sSf adalah kombinasi yang perlu diingat, dan ketidakhadirannya sering menjadi alasan mengapa tugas yang gagal tampak seolah-olah berjalan dengan baik.

Percobaan Ulang

wget melakukan percobaan ulang secara default. curl tidak melakukannya kecuali Anda memintanya dengan --retry.

Sekali lagi, hal ini konsisten dengan model-model tersebut: sebuah pengunduh harus gigih, sedangkan alat transfer harus melaporkan.

Saran Praktis

Jika Anda sedang menulis skrip otomatis apa pun, tetapkan perilakunya secara eksplisit daripada mengandalkan pengaturan default dari kedua alat tersebut. curl -sSfL --max-time 30 menyatakan apa yang Anda inginkan. Begitu pula wget --tries=3 --timeout=30. Perintah eksplisit akan tetap dapat dipahami oleh orang lain setahun kemudian.

Perbandingan

Tugascurlwget
Menampilkan di terminalcurl URLwget -O - URL
Menyimpan ke berkascurl -O URLwget URL
Menyimpan dengan nama yang dipilihcurl -o name URLwget -O name URL
Ikuti pengalihancurl -L URLdefault
Lanjutkan unduhancurl -C - -O URLwget -c URL
Hanya headercurl -I URLwget --spider -S URL
Header khususcurl -H "K: V" URLwget --header="K: V" URL
Otentikasi dasarcurl -u user:pass URLwget --user=u --password=p URL
Data POSTcurl -d "a=b" URLwget --post-data="a=b" URL
Senyapcurl -s URLwget -q URL
Cerminkan situstidak mungkinwget -m URL
Mengunggah berkascurl -T file URLtidak mungkin
Menggunakan SOCKS5curl -x socks5h://host URLtidak secara bawaan
Transfer paralelcurl -Z ...tidak didukung

Membaca Tabel

Simetri ini berlaku untuk operasi sehari-hari — sebagian besar tugas memiliki padanan langsung, dengan perbedaan penulisan opsi yang lebih mengganggu daripada penting.

Empat baris yang ditandai sebagai ‘tidak mungkin’ adalah tempat di mana pilihan sebenarnya dibuat. Mencerminkan situs hanya bisa dilakukan dengan wget. Mengunggah hanya bisa dilakukan dengan curl. Proksi SOCKS hanya bisa dilakukan dengan curl. Transfer paralel hanya bisa dilakukan dengan curl.

Jika tugas Anda termasuk dalam salah satu baris tersebut, perbandingan ini sudah selesai dan Anda bisa berhenti membaca. Jika tidak, kedua alat tersebut berfungsi dan Anda sebaiknya menggunakan yang mana pun yang lebih Anda kuasai.

Catatan tentang Tabrakan Opsi

Opsi -O memiliki arti yang berbeda di kedua alat tersebut, dan ini benar-benar bisa menjebak.

Di curl, -O berarti "simpan menggunakan nama file dari URL" dan -o name berarti "simpan dengan nama ini". Di wget, -O name berarti "simpan dengan nama ini" dan opsi lainnya tidak diperlukan.

Jadi, curl -O dan wget -O bukanlah hal yang setara, dan perintah yang diterjemahkan secara sembarangan antara kedua alat tersebut akan menghasilkan hasil yang tidak terduga.

Pilihan Penggunaan Berdasarkan Tugas

Daftar panduan, bukan keputusan mutlak.

Gunakan wget jika

Anda ingin menyimpan berkas ke disk. Tanpa opsi tambahan, dengan bilah kemajuan, dan pengaturan default yang tepat. Ini adalah skenario yang paling umum bagi kebanyakan orang.

Anda ingin melakukan mirroring atau mengunduh secara rekursif. Satu-satunya pilihan. Gunakan wget -m atau wget -r dengan batasan yang sesuai.

Koneksi tidak stabil dan ukuran file besar. Upaya ulang otomatis dan kelanjutan unduhan -c.

Anda ingin menyinkronkan salinan lokal. -N menandai waktu unduhan hanya untuk bagian yang berubah.

Anda menginginkan perintah sesingkat mungkin untuk pengunduhan langsung dalam skrip yang akan dibaca orang lain.

Gunakan curl saat

Anda sedang bekerja dengan API. Header, metode, isi permintaan, dan keluaran yang dialirkan ke pemroses JSON.

Anda perlu mengirim data, bukan hanya mengambilnya.

Anda sedang melakukan debugging. -v dan -w menampilkan permintaan yang dikirim, respons, serta waktu yang dirinci per fase. Inilah keunggulan utama curl dalam penggunaan sehari-hari, dan tidak ada yang mendekati.

Anda memerlukan protokol selain HTTP dan FTP.

Anda membutuhkan dukungan proxy SOCKS atau HTTPS.

Anda menggunakan Windows atau macOS tanpa aplikasi apa pun yang terinstal, di mana curl sudah tersedia sedangkan wget biasanya tidak.

Anda sedang menulis sesuatu yang akan menjadi kode, karena binding libcurl membuat bentuk perintahnya dapat diterjemahkan secara alami.

Gunakan Keduanya

Jawaban jujur untuk sebagian besar konfigurasi kerja. Keduanya berukuran kecil, gratis, dan unggul dalam hal yang berbeda. Memiliki keduanya terinstal dan memilih yang paling sesuai bukanlah bentuk keraguan — melainkan hasil yang tepat karena keduanya memang merupakan alat yang benar-benar berbeda.

Proksi di Keduanya

Wilayah kami, dan ada satu perbedaan nyata yang perlu diketahui.

curl

# HTTP proxy
curl -x http://proxy.example.com:8080 https://example.com

# With credentials
curl -x http://user:pass@proxy.example.com:8080 https://example.com

# SOCKS5, with the proxy resolving hostnames
curl -x socks5h://proxy.example.com:1080 https://example.com

curl mendukung proksi HTTP, proksi HTTPS, serta SOCKS4/SOCKS5

, semuanya melalui opsi -x

yang sama dengan skema.

wget

# Via environment variables
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
wget https://example.com

# With credentials
wget --proxy-user=user --proxy-password=pass https://example.com

wget membaca variabel lingkungan proxy standar dan memiliki opsi untuk kredensial proxy.

Perbedaan yang Penting

wget tidak memiliki dukungan SOCKS bawaan. Perbandingan curl mencantumkan SOCKS4 dan SOCKS5

di antara hal-hal yang didukung oleh curl tetapi tidak oleh wget.

Jika proxy Anda hanya mendukung SOCKS, wget tidak dapat menggunakannya secara langsung. Solusi umum yang biasa dilakukan adalah menjalankan wget melalui alat seperti proxychains, atau menempatkan jembatan HTTP-ke-SOCKS lokal di depannya — keduanya berfungsi, namun keduanya juga menambahkan komponen yang dapat gagal tanpa pemberitahuan.

Jika Anda memilih di antara keduanya dan SOCKS sudah ada dalam konfigurasi Anda, hal itulah yang menjadi penentu.

Detail DNS, Lagi

Hal ini layak diulang karena berlaku setiap kali curl digunakan dengan SOCKS. socks5://

menerjemahkan nama host di mesin Anda; socks5h://

mengirimkan nama host tersebut ke proxy. Yang pertama membocorkan setiap host yang Anda kunjungi ke resolver lokal Anda meskipun lalu lintas diarahkan dengan benar, dan dapat memberikan alamat yang salah secara regional untuk situs dengan infrastruktur yang bergantung pada lokasi.

Gunakan socks5h://

kecuali Anda memiliki alasan khusus untuk tidak melakukannya.

Dan Bagian di Mana Kita Menghalangi Penjualan Sendiri

Jika Anda sedang mengunduh file, memanggil API yang kredensialnya Anda miliki, atau memeriksa apakah suatu layanan sedang aktif, Anda sama sekali tidak memerlukan proxy. Proxy berperan dalam alat-alat ini untuk pemeriksaan geografis dan untuk pekerjaan bervolume besar yang dibatasi oleh batas kecepatan per alamat. Untuk hal-hal lainnya, proxy hanya menambah latensi, titik kegagalan, dan tagihan.

Ketika Keduanya Bukan Alat yang Tepat

Beberapa situasi umum membutuhkan pendekatan lain, dan menggunakan salah satu dari kedua alat tersebut hanya akan membuang-buang waktu sepanjang sore.

Halaman tersebut dirender oleh JavaScript. Kedua alat tersebut mengambil data yang dikirimkan oleh server. Jika kontennya disusun di browser setelahnya, Anda akan mendapatkan halaman kosong dan tidak ada flag yang bisa memperbaikinya. Anda memerlukan browser headless — Playwright, Puppeteer, atau yang serupa.

Anda perlu berinteraksi dengan halaman tersebut. Mengklik, menggulir, mengisi formulir, menunggu sesuatu muncul. Jawabannya sama.

Anda sedang membangun sesuatu yang dapat dipelihara dalam kode. Menggunakan curl dari dalam aplikasi adalah jalan pintas umum yang cepat usang. Gunakan pustaka HTTP bahasa pemrograman Anda, atau binding libcurl, dan dapatkan penanganan kesalahan yang tepat.

Anda perlu menyinkronkan direktori dua arah. rsync adalah alatnya, dan alat ini jauh lebih baik dalam hal ini daripada wget rekursif.

Anda mentransfer data antar server yang Anda kendalikan. scp, rsync, atau sftp — dirancang khusus, lebih cepat, dan menangani izin serta transfer parsial dengan benar.

Anda perlu memeriksa atau memodifikasi lalu lintas data yang sedang dikirim. Alat proxy intercepter adalah solusi yang tepat.

Anda sedang mengunduh media dari platform video. Alat yang dirancang khusus menangani penguraian manifest dan perakitan aliran yang tidak dilakukan oleh kedua upaya ini.

Data tersebut disediakan melalui cara lain. Sebuah API, unduhan massal, kumpulan data publik, atau umpan RSS. Memeriksanya membutuhkan waktu sepuluh menit dan sering kali mengakhiri proyek sebelum dimulai.

Peringatan tentang Pengunduhan Rekursif

Satu peringatan khusus mengenai wget -r, yang sangat kuat namun mudah diarahkan ke hal yang tidak Anda inginkan.

Tanpa -np, proses ini dapat naik ke direktori induk. Tanpa --level, proses ini dapat turun sangat dalam. Tanpa --wait, perintah ini akan meminta data secepat server merespons, yang merupakan tindakan tidak sopan terhadap infrastruktur orang lain dan cara yang pasti untuk diblokir.

Setidaknya: wget -r -np --level=3 --wait=1 URL. Dan periksa robots.txt serta ketentuan situs tersebut terlebih dahulu — wget secara default menghormati robots.txt, dan menonaktifkannya adalah sebuah keputusan, bukan sekadar kemudahan.

Pertanyaan Lainnya

Apa perbedaan antara curl dan wget?

curl bekerja seperti cat — ia mengambil data dan menampilkannya ke output standar. wget bekerja seperti cp — ia mengambil data dan menyimpannya ke file. curl mendukung jauh lebih banyak protokol, unggahan, proxy SOCKS, dan transfer paralel; wget dapat mengunduh secara rekursif dan membuat salinan situs, yang sama sekali tidak dapat dilakukan oleh curl.

Apakah curl lebih baik daripada wget?

Keduanya sama-sama baik. curl adalah alat transfer yang didukung oleh perpustakaan dan memiliki jangkauan protokol yang jauh lebih luas; wget adalah pengunduh dengan pengaturan default yang lebih baik untuk mengunduh serta kemampuan rekursif yang unik. Sebagian besar orang akan mendapat manfaat dengan memiliki keduanya.

Apakah curl dapat mengunduh secara rekursif seperti wget?

Tidak. curl mengambil URL yang Anda berikan dan tidak mengurai HTML atau menemukan tautan. Pengunduhan rekursif dan pencerminan situs hanya dapat dilakukan oleh wget, dan pengelola curl sendiri menyebut hal ini sebagai kekuatan utama wget.

Mengapa curl tidak mengikuti pengalihan (redirect)?

Itu memang dirancang demikian. curl melaporkan apa yang dikatakan server, bukan membuat permintaan yang tidak Anda minta. Tambahkan -L untuk mengikuti pengalihan. wget mengikuti pengalihan secara default karena tujuannya adalah mengambil berkas, dan berkas tersebut telah dipindahkan.

Mana yang lebih cepat, curl atau wget?

Untuk satu transfer, perbedaannya dapat diabaikan — keduanya dibatasi oleh jaringan. curl dapat menjalankan beberapa transfer secara paralel dengan opsi -Z, yang membuatnya jauh lebih cepat saat mengambil banyak sumber daya berukuran kecil.

Apakah wget mendukung proxy SOCKS?

Tidak secara bawaan. curl mendukung proxy SOCKS4, SOCKS5, dan HTTPS; wget menggunakan variabel lingkungan proxy HTTP standar. Untuk menggunakan SOCKS dengan wget, Anda memerlukan wrapper seperti proxychains atau jembatan lokal.

Mana yang sebaiknya saya gunakan dalam skrip?

Keduanya, dengan opsi yang ditentukan secara eksplisit. Untuk API dan apa pun yang memerlukan pemeriksaan respons, gunakan curl -sSfL --max-time 30. Untuk mengambil berkas, gunakan wget --tries=3 --timeout=30. Jangan mengandalkan pengaturan default kedua alat tersebut dalam otomatisasi.

Apakah curl atau wget sudah terpasang secara default?

curl sudah terpasang secara default di macOS serta Windows 10 dan 11. wget merupakan standar di sebagian besar distribusi Linux, tetapi sering kali tidak tersedia di macOS dan Windows. Untuk skrip lintas platform, lebih aman mengasumsikan bahwa curl sudah terpasang.

Kesimpulan

Perbandingan ini dapat diselesaikan lebih cepat daripada yang disangka berdasarkan popularitasnya, karena kedua alat tersebut dirancang berdasarkan fungsi yang berbeda.

curl mentransfer. wget mengunduh. curl menulis ke output standar seperti cat, melakukan persis apa yang diminta, dan melaporkan sisanya — itulah sebabnya curl tidak mengikuti pengalihan, tidak mencoba ulang, dan memerlukan opsi khusus untuk menulis ke file. wget menulis ke disk seperti cp, dan semua yang dilakukannya secara default didasarkan pada tujuan akhir berupa file yang sudah ada.

Empat kemampuan menentukan pilihan secara langsung, dan jika tugas Anda melibatkan salah satunya, perbandingan lainnya menjadi tidak relevan. Unduhan rekursif dan pencerminan situs hanya tersedia di wget — pengembang curl sendiri menyebutnya sebagai keunggulan utama wget dan curl tidak memiliki fitur setara. Unggahan, proxy SOCKS, dan transfer paralel hanya tersedia di curl.

Di luar itu, keduanya berfungsi, dan perbedaan praktisnya terletak pada penulisan opsi dan pengaturan default. Perhatikan konflik "-O" saat menerjemahkan perintah antar keduanya, karena arti keduanya berlawanan. Dan dalam hal apa pun yang diotomatisasi, nyatakan niat Anda secara eksplisit daripada mengandalkan asumsi alat mana pun — curl -sSfL --max-time 30 dan wget --tries=3 --timeout=30 adalah perintah yang akan tetap dimengerti oleh siapa pun yang membacanya tahun depan.

Mengenai proxy: kami menjualnya, namun sebagian besar penggunaan alat-alat ini tidak membutuhkannya. Jika Anda memang membutuhkannya, dukungan curl lebih luas, dan detail yang lebih penting daripada alatnya adalah menggunakan socks5h:// daripada socks5:// agar pencarian nama host Anda mengikuti rute yang sama dengan lalu lintas Anda.

Rekomendasi jujurnya adalah menginstal keduanya. Ukurannya kecil, gratis, dan perdebatan mengenai mana yang lebih baik telah terselesaikan bertahun-tahun yang lalu oleh fakta bahwa sebagian besar mesin yang beroperasi memiliki keduanya.