Kode status HTTP adalah angka tiga digit yang dikembalikan server di bagian atas setiap respons untuk merangkum apa yang terjadi. Dengan kode inilah browser, client, proxy, dan CDN memutuskan apakah akan menyimpan cache, redirect, mencoba lagi, atau menampilkan error kepada pengguna.
Setiap kode status masuk ke salah satu dari lima kelas berdasarkan digit pertamanya: 1xx informasi, 2xx berhasil, 3xx pengalihan, 4xx error client, 5xx error server. Begitu tahu kelasnya, biasanya kamu sudah tahu arti kasarnya bahkan sebelum mencari kode spesifiknya.
Kebanyakan aplikasi hanya memakai sekumpulan kecil kode inti (200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, 503). Memahami *arti* masing-masing, termasuk beda 401 Unauthorized dan 403 Forbidden, atau 301 Moved Permanently dan 302 Found, itulah yang membuatmu menjadi developer backend atau API yang lebih kuat.
Yang akan kamu pelajari saat memakai referensi ini
Digit pertama selalu menunjukkan kelasnya: 1xx informasi, 2xx berhasil, 3xx redirect, 4xx error client, 5xx error server.
Kode status adalah *bagian dari kontrak* sebuah API: client sebaiknya bercabang berdasarkan kode ini, bukan mengurai pesan error dari body.
4xx berarti client melakukan kesalahan (input buruk, autentikasi tidak ada, resource tidak ada). 5xx berarti server gagal, apa pun yang dilakukan client.
Beberapa kode punya nuansa: 401 vs 403, 301 vs 308, 200 vs 204. Perbedaannya penting untuk caching dan percobaan ulang.
Cara memakai referensi kode status langkah demi langkah
1
Cari berdasarkan kode atau nama
Ketik angka (404, 429) atau kata kunci (auth, redirect, rate limit), dan kode yang cocok langsung tersaring.
2
Saring berdasarkan kelas
Pakai chip kelas (1xx, 2xx, 3xx, 4xx, 5xx) untuk mempersempit daftar saat kamu menjelajah, bukan mencari.
3
Baca penjelasan sederhananya
Setiap entri berisi kapan kode itu dikirim, perilaku client yang umum, dan penyebab yang paling sering.
4
Bandingkan kode yang berkaitan
Pakai tautan lihat-juga di antara pasangan yang membingungkan (401 vs 403, 301 vs 302) untuk memilih yang tepat bagi API-mu.
Berhasil, tetapi tanpa body. Umum setelah panggilan DELETE atau PUT yang tidak perlu mengembalikan data.
Ketiganya kode sukses, dan bedanya ada pada apa yang dibawa respons. 201 sebaiknya menyertakan header Location yang menunjuk ke resource baru, sedangkan 204 memang kosong menurut definisinya.
Redirect sementara. Browser mengecek ulang URL asli di setiap permintaan, dan bookmark tetap di URL lama.
Pakai 301 saat kamu benar-benar memindahkan resource (ganti merek, perubahan struktur URL). Pakai 302 untuk redirect berumur pendek seperti A/B test, redirect login, atau halaman maintenance.
Server tahu siapa kamu, tetapi kamu tidak punya izin untuk resource ini.
Kalau mengirim kredensial lain mungkin bisa memperbaikinya, kembalikan 401. Kalau kredensial apa pun tidak akan membantu (resource-nya memang terlarang untuk pengguna ini), kembalikan 403.
Gateway timeout: proxy berhasil menjangkau upstream tetapi tidak mendapat respons tepat waktu.
Keempatnya error server, tetapi masing-masing bercerita sangat berbeda bagi orang yang men-debug. 500 berarti aplikasimu, 502 dan 504 menunjuk ke jalur jaringan, dan 503 menunjuk ke kapasitas.
Kesalahan umum soal kode status HTTP
Mengembalikan 200 OK dengan {"error": "..."} di body. Kode status adalah bagian dari kontrak, jadi pakai yang tepat (400, 404, 500) agar client bisa bercabang berdasarkan kode itu.
Memakai 401 untuk error izin. 401 untuk autentikasi, sedangkan penolakan izin adalah 403.
Memakai 200 untuk resource yang baru dibuat, bukan 201 dengan header Location.
Mengembalikan 404 untuk akses tanpa izin. Cara ini menyembunyikan resource dari pengintaian, tetapi juga membingungkan client yang punya akses sah. 403 biasanya lebih jelas.
Mencampuradukkan 429 Too Many Requests dengan 503 Service Unavailable. Pakai 429 untuk rate limit per client, dan 503 untuk kelebihan beban global.
FAQ Kode Status HTTP
Apa arti HTTP 404?
404 Not Found berarti server memahami permintaannya, tetapi resource di URL itu tidak ada. Paling sering path-nya salah, resource-nya sudah dihapus, atau URL-nya salah ketik.
Apa bedanya 401 dan 403?
401 Unauthorized berarti kamu belum terautentikasi: server tidak tahu siapa kamu. 403 Forbidden berarti kamu sudah terautentikasi tetapi tidak punya izin untuk resource itu. Mengirim kredensial lain mungkin memperbaiki 401, tetapi tidak akan memperbaiki 403.
Apa bedanya 301 dan 302?
301 Moved Permanently adalah redirect permanen: browser dan mesin pencari memperbarui catatannya. 302 Found adalah redirect sementara: client tetap mengunjungi URL asli. Pakai 301 untuk perpindahan permanen, dan 302 untuk pengalihan sementara.
Apa arti HTTP 500?
500 Internal Server Error adalah error sisi server yang umum, biasanya dilempar saat exception yang tidak ditangani naik ke atas. Client tidak melakukan kesalahan apa pun: server-mu gagal memproses permintaan yang valid.
Haruskah aku selalu memakai kode status yang spesifik?
Ya. 200 OK umum untuk kegagalan atau 500 untuk semua kesalahan membuat API lebih sulit dipakai. Pilih kode paling spesifik yang cocok, karena client, proxy, sistem monitoring, dan logika retry semuanya bercabang berdasarkan kode status.
Apa arti HTTP 429?
429 Too Many Requests dikirim saat client mencapai rate limit. Responsnya sebaiknya menyertakan header Retry-After yang memberi tahu client kapan aman untuk mencoba lagi.
Apa arti HTTP 403 Forbidden?
403 Forbidden berarti server memahami permintaannya dan tahu siapa kamu, tetapi menolak memberimu akses ke resource itu. Berbeda dengan 401, autentikasi ulang tidak akan membantu, karena akunmu memang tidak punya izin. Penyebab umumnya adalah role atau scope yang tidak ada, allowlist IP, atau resource yang bersifat privat milik pengguna lain.
Apa arti HTTP 502 Bad Gateway?
502 Bad Gateway berarti server yang bertindak sebagai proxy atau gateway (CDN, load balancer, atau reverse proxy) menerima respons yang tidak valid atau kosong dari server upstream tempat permintaanmu diteruskan. Biasanya ini menunjuk ke backend yang mati, crash, atau salah konfigurasi, bukan ke permintaanmu.
Ada berapa banyak kode status HTTP?
Ada lima kelas (1xx-5xx) dan sekitar 60 kode terstandar yang terdaftar di IANA, meski kebanyakan jarang dipakai. Dalam praktiknya, pengembangan web dan API sehari-hari mengandalkan sekitar 15 sampai 20 kode inti: 200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, dan 503. Daftar yang bisa dicari di atas mencakup setiap kode standar dengan penjelasan sederhana.