Sebelum men-download file pertama, ada beberapa skill dasar dan tools yang perlu kalian siapkan terlebih dahulu: kenyamanan navigasi di terminal, pemahaman konsep dasar HTTP dan networking, hingga verifikasi bahwa GNU Wget 1.25.x sudah terinstall dan siap dipakai di environment kalian masing-masing.

Selamat datang di series Belajar Wget! Series ini akan membawa kalian menguasai GNU Wget — command-line downloader dan recursive website downloader yang non-interaktif — dari download file pertama hingga mirroring, scripting, dan production hardening. Total ada 23 episode yang membangun pemahaman kalian lapis demi lapis.
Tapi sebelum mengetik perintah wget pertama, ada beberapa skill dasar dan tools yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena wget adalah klien: dia berbicara dengan server melalui jaringan menggunakan protokol HTTP, lalu menulis hasilnya ke file di disk. Kalau kalian belum paham bagaimana sebuah percakapan HTTP berjalan, atau belum nyaman di terminal, perintah wget akan terasa seperti kotak hitam — tahu perintahnya, tapi tidak paham apa yang terjadi di dalamnya.
Bayangkan ingin menjadi sopir truk ekspedisi tetapi belum memahami peta jalan. Sehebat apapun truknya — dan wget adalah truk yang sangat andal — tetap sulit mengirim barang tanpa memahami rutenya. Episode 0 ini adalah peta jalannya: kita menyiapkan skill dasar, memastikan GNU Wget 1.25.x terinstall dan terverifikasi, lalu melengkapi tools pendukung yang akan menemani sepanjang series.
Wget adalah tool Command Line Interface (CLI). Seluruh kekuatannya diakses lewat terminal — bukan tombol klik. Inilah kenapa langkah pertama adalah menyiapkan mentalitas: tidak takut mengetik, mau membaca error, dan sabar membangun hafalan.
Analogi sederhana: GUI itu seperti remote control TV — simpel, tapi terbatas pada tombol yang tersedia. CLI itu seperti panel kontrol pesawat — terlihat menakutkan di awal, tapi memberi kendali penuh atas setiap aspek. Semua pekerjaan DevOps — mengambil file dari server, memirror website, menjadwalkan download — dimulai dari sebuah perintah di terminal.
Sebelum bergelut dengan wget, pastikan kalian nyaman bernavigasi di terminal. Minimal empat perintah ini sudah cukup sebagai titik awal:
| Perintah | Fungsi |
|---|---|
pwd | Menampilkan direktori kerja saat ini |
ls | Mendaftar isi direktori |
cd | Pindah ke direktori lain |
man | Membaca manual sebuah perintah |
Satu konsep yang wajib dipahami sejak sekarang: stdout. Banyak perintah menulis hasilnya ke stdout — yaitu layar terminal kalian. Output ini bisa dialihkan ke file dengan > (redirect) atau diteruskan ke perintah lain dengan | (pipeline). Pola ini akan kalian pakai terus sepanjang series, misalnya wget -O - URL | jq — jadi pahami sejak awal.
HTTP (Hypertext Transfer Protocol) adalah protokol yang paling sering digunakan wget. Semua request HTTP berangkat dari satu benda yang disebut URL — alamat tujuan transfer. Anatomi URL bisa dipecah menjadi lima komponen:
| Komponen | Contoh | Fungsi |
|---|---|---|
| Scheme | https | Protokol yang digunakan |
| Host | example.com | Nama domain server tujuan |
| Port | 443 | Pintu koneksi di server (default jika tidak ditulis) |
| Path | /files/ | Lokasi resource di server |
| Query | ?id=1 | Parameter tambahan untuk request |
Setelah URL dipahami, pahami juga bentuk percakapannya: request dan response. Klien (wget) mengirim request yang berisi method, path, dan header. Server menjawab dengan response yang berisi status code, header, dan body. Wget terutama memakai method GET — mengambil data — tapi penting mengenal kelas status code, karena itulah "nilai rapor" dari setiap download:
| Kelas | Arti | Contoh |
|---|---|---|
| 2xx | Sukses | 200 OK |
| 3xx | Redirect | 301 Moved Permanently, 302 Found |
| 4xx | Kesalahan klien | 403 Forbidden, 404 Not Found |
| 5xx | Kesalahan server | 500 Internal Server Error |
Selain status code, ada header — metadata yang dikirim sebelum body. Yang sering muncul: Content-Length (panjang file dalam byte), Content-Type (jenis file), Content-Disposition (nama file yang disarankan), dan Last-Modified (waktu file terakhir diubah). Header ini akan penting di episode-episode berikutnya, terutama untuk resume dan penamaan file.
Selain HTTP, ada empat konsep jaringan yang akan terus muncul sepanjang series:
| Konsep | Penjelasan | Analogi |
|---|---|---|
| DNS | Menerjemahkan nama domain menjadi alamat IP | Buku telepon: kalian ingat namanya, sistem yang mencari nomornya |
| IP Address | Alamat unik sebuah server di internet | Alamat rumah |
| Port | Pintu spesifik di sebuah server | Nomor unit apartemen: 80 untuk HTTP, 443 untuk HTTPS |
| TLS/SSL | Enkripsi data selama transit | Amplop bersegel: isinya aman dibaca hanya oleh penerima |
| Proxy | Perantara antara klien dan server | Resepsionis yang meneruskan surat kalian |
Kenapa penting? Karena wget akan "berbicara" langsung dengan semua lapisan ini. Saat wget mengunduh dari https://example.com, ia melakukan resolusi DNS, membuat koneksi TCP ke port 443, melakukan TLS handshake, lalu mengirim HTTP request. Di episode 2 kita akan membedah alur ini langkah demi langkah.
Kabar baiknya: mayoritas distro Linux memuat wget secara default — cukup buka terminal dan ketik:
wget --versionGNU Wget 1.25.0 linux-gnu
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
Currently maintained by Tim Ruehsen <tim.ruehsen@gmx.de>.
Please send bug reports and questions to <wget@gnu.org>.Perhatikan dua bagian pada output di atas:
GNU Wget 1.25.0) dan sistem target (linux-gnu). Series ini mengasumsikan wget 1.25.x.Berbeda dari curl --version, wget tidak mencantumkan daftar fitur dalam satu baris Features. Kemampuan TLS, HTTP/2, dan WARC ditentukan saat kompilasi. Cara memverifikasinya:
| Fitur | Cara Verifikasi |
|---|---|
| TLS/HTTPS aktif | wget -S https://example.com dan lihat baris SSL connection using TLSv1.3 di output |
| WARC support | wget --help memuat opsi --warc-file |
| HTTP/2 | Tersedia di build wget 1.25+ yang dikompilasi dengan dukungan HTTP/2 |
Tip
Cara tercepat memastikan build kalian sehat: wget -S https://example.com. Jika baris SSL connection using TLSv1.3 muncul dan file index.html tersimpan, berarti TLS bekerja dan wget siap dipakai — tanpa perlu menebak-nebak dari output --version.
Pada Windows 10+, wget tidak tersedia bawaan seperti curl. Pilihan paling nyaman adalah WSL2 — di sana wget berjalan sebagai binary Linux native, sama persis dengan lingkungan server production.
Jika wget --version justru menampilkan command not found, install dengan package manager sesuai sistem:
sudo apt update
sudo apt install wgetPerlu dicatat: macOS tidak membundel wget — yang terinstall bawaan adalah curl. Jadi di macOS, brew install wget adalah langkah wajib. Di Windows, selain WSL2, kalian juga bisa memakai package manager seperti scoop atau choco (misalnya scoop install wget), atau mengunduh binary resmi dari proyek.
Wget hebat sendirian, tapi beberapa pekerjaan akan jauh lebih mudah dengan empat tools pendamping berikut:
| Tools | Kegunaan di Series Ini | Verifikasi |
|---|---|---|
curl | Pembanding sekaligus pelengkap; fleksibel untuk request API | curl --version |
jq | Mem-parse dan mewarnai output JSON (misalnya dari wget -O -) | jq --version |
gpg | Memverifikasi tanda tangan file yang diunduh | gpg --version |
openssl | Memeriksa sertifikat TLS dan detail koneksi terenkripsi | openssl version |
jq paling penting untuk episode awal karena pola wget -O - URL | jq akan dipakai untuk mengambil dan membaca data dari API. gpg akan berguna di episode yang membahas verifikasi keaslian file unduhan. Pastikan keempatnya terinstall dengan menjalankan:
curl --version
jq --version
gpg --version
openssl versionpwd, ls, cd, man).wget --version menampilkan GNU Wget 1.25.x.wget -S https://example.com).curl, jq, gpg, dan openssl sudah terinstall.Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill dasar CLI dan konsep HTTP (URL, request/response, status code, header), mengenal networking dasar (DNS, port, TLS, proxy), memastikan GNU Wget 1.25.x terinstall dan terverifikasi dengan dukungan TLS yang aktif, serta melengkapi tools pendukung curl, jq, gpg, dan openssl.
Inti yang harus dibawa pulang:
wget --version: pastikan versi 1.25.x dan HTTPS berfungsi.curl, jq, gpg, dan openssl sebagai pendamping sepanjang series.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa dunia membutuhkan wget — mulai dari Geturl yang ditulis Hrvoje Niksic di tahun 1996, masuknya wget ke proyek GNU, hingga bagaimana sebuah tool kecil menjadi standar de-facto downloader non-interaktif selama lebih dari 25 tahun. Pastikan environment kalian sudah siap, karena perjalanan Belajar Wget baru saja dimulai!