Bagaimana sebuah permintaan mengalir
Sekarang kita satukan semuanya. Mari ikuti penggunamu yang mengklik "Save profile" melewati setiap bagian yang baru saja kamu kenal. Ini adalah model mental paling berguna dalam buku ini; kalau kamu hanya mau menyerap satu diagram, jadikan ini yang itu.
1. USER clicks "Save profile"
│
▼
2. FRONTEND (HTML form, JavaScript reads the values)
│ sends an HTTP request: "POST /profile { name: 'Ada' }"
▼
3. HOSTING routes the request to your running BACKEND
│
▼
4. BACKEND
├─ is this user logged in? (no → respond 401, stop)
├─ is the data valid? (no → respond 400, stop)
└─ all good → save to the DATABASE
│
▼
5. DATABASE writes the row, confirms back to the BACKEND
│
▼
6. BACKEND responds: "200 OK { saved: true }"
│
▼
7. FRONTEND receives the response, updates the DOM
│ ("Profile saved ✓") — the user sees it
▼
DONE
Telusuri apa yang dilakukan setiap lapisan: mengumpulkan input dan mengirimkannya; hosting mengantarkan permintaan ke tempat yang tepat; menegakkan aturan (login, validasi) dan memutuskan; membuatnya permanen; dan responsnya mengalir kembali sampai frontend bisa memperbarui layar. Setiap aplikasi adalah variasi dari loop ini, dijalankan ribuan kali per detik.
Perhatikan bahwa semua pemeriksaan terjadi di backend, tidak pernah di frontend — aturan dari bagian pertama, dalam praktik: frontend untuk pengguna, backend untuk kebenaran. Ketika kamu tahu di mana setiap langkah terjadi, kamu bisa menjelaskan sebuah fitur secara presisi ("validasi email di backend sebelum menyimpan") alih-alih samar ("buat form-nya berfungsi") — dan presisi adalah keseluruhan permainannya.