Internet adalah jaringan raksasa yang menyambungkan miliaran perangkat di seluruh dunia, lewat kabel, WiFi, dan sinyal seluler. Setiap kali kamu membuka website, browser kamu mengirim pesan ke komputer lain dan menunggu balasannya. Pelajaran ini mengikuti perjalanan pesan itu, langkah demi langkah.
🧪 Tebakan cepat: waktu kamu menekan Enter, apa yang browser lakukan paling pertama? Langsung minta halamannya ke server, atau ada hal lain dulu? Tebak dulu, jawabannya ada di bagian "Perjalanan satu halaman".
Perjalanan satu halaman
Kenalan dulu dengan tiga istilah:
- Client adalah perangkat atau program yang meminta sesuatu, misalnya browser di laptopmu.
- Server adalah komputer yang menyimpan website dan menjawab permintaan. Dia menyala terus, siang dan malam.
- Alamat IP adalah nomor alamat tiap perangkat di internet, misalnya
203.0.113.10. Mirip nomor rumah: tanpa itu, pesan gak tahu harus dikirim ke mana.
Ini yang terjadi waktu kamu mengetik belajarweb.dev lalu menekan Enter:
1. DNS "belajarweb.dev itu IP-nya berapa?" → 203.0.113.10
2. TCP SYN → SYN-ACK → ACK (jabat tangan)
3. Request GET / HTTP/1.1
4. Response HTTP/1.1 200 OK + isi halaman (HTML)
5. Render browser menggambar halaman di layar
- DNS (Domain Name System) adalah buku alamat internet. Browser cuma tahu namanya, padahal untuk mengirim pesan dia butuh alamat IP. Jadi langkah pertama selalu mencari IP dari nama itu. Itu jawaban tebakannya.
- TCP membuka sambungan ke server dengan jabat tangan tiga pesan. Detailnya ada di bawah.
- Request adalah permintaan dari browser.
GET /artinya "minta halaman utama". - Response adalah balasan server.
200 OKartinya "berhasil, ini halamannya". - Render: browser membaca HTML, CSS, dan JavaScript yang diterima, lalu menggambar halamannya.
DNS, TCP, dan HTTP (bahasa request dan response) masing-masing disebut protokol: aturan komunikasi yang disepakati kedua pihak. Semua langkah ini biasanya selesai dalam kurang dari satu detik. Kalau alamatnya diawali https://, sesudah TCP ada satu jabat tangan lagi untuk enkripsi. Itu dibahas di pelajaran HTTP & HTTPS.
Data dikirim dalam paket
Halaman web gak dikirim utuh. Dia dipotong jadi paket, potongan kecil data yang masing-masing membawa alamat IP tujuan dan nomor urut. Router adalah perangkat yang meneruskan paket satu lompatan lebih dekat ke tujuannya. Router WiFi di rumahmu meneruskan ke ISP (penyedia internet, perusahaan yang menyambungkanmu ke internet), lalu dari router ke router sampai ke server. Paket dari satu pesan bisa lewat jalur berbeda, tiba dengan urutan acak, bahkan hilang di jalan.
TCP menjamin semua paket sampai
TCP (Transmission Control Protocol) adalah protokol yang memastikan data sampai lengkap dan urut:
- Jabat tangan tiga langkah (three-way handshake). Sebelum kirim data, client mengirim SYN ("boleh nyambung?"), server membalas SYN-ACK ("boleh, kamu siap?"), lalu client mengirim ACK ("siap"). Sesudah itu sambungan terbuka.
- Susun dan kirim ulang. Penerima menyusun paket sesuai nomor urutnya dan memberi tahu paket mana yang sudah diterima. Paket yang gak sampai dikirim ulang.
UDP (User Datagram Protocol) kebalikannya: langsung kirim, tanpa jabat tangan dan tanpa kirim ulang. Lebih cepat, tapi paket yang hilang ya hilang. Cocok buat video call dan game online, di mana data yang telat sudah gak berguna.
⚠️ Jebakan yang sering ketemu
- Internet dan web itu beda. Internet adalah jaringannya: kabel, router, alamat IP. Web adalah halaman-halaman yang dikirim lewat HTTP di atas jaringan itu. Email dan game online juga lewat internet, tapi bukan web.
- Latency bukan bandwidth. Latency adalah waktu tempuh satu pesan, dalam milidetik (ms). Bandwidth adalah banyaknya data per detik, dalam Mbps. Internet 100 Mbps dengan latency 300 ms tetap terasa lambat buat game.
- Koneksi gak selalu stabil. Sinyal bisa putus di tengah request. Aplikasi web yang baik selalu siap kalau request gagal, misalnya dengan pesan error dan tombol coba lagi.
💡 HTTP/3 lewat jalan lain. Banyak situs sekarang memakai HTTP/3, yang jalan di atas QUIC, protokol baru di atas UDP. QUIC tetap menjamin data lengkap dan urut seperti TCP, dan menggabungkan jabat tangan sambungan dengan enkripsi supaya lebih cepat.
TL;DR: Client (browser) meminta, server menjawab, dan tiap perangkat punya alamat IP. Membuka website itu lima langkah: DNS mencari IP dari nama domain, TCP berjabat tangan (SYN, SYN-ACK, ACK), browser mengirim request, server membalas dengan response, lalu browser me-render halaman. Datanya jalan sebagai paket lewat banyak router. TCP menjamin paketnya lengkap dan urut, UDP lebih cepat tanpa jaminan.