Mengenal HTTP Status Code 200, 301, 403, 404, 429 & 500
Pernah membuka website lalu mendapatkan error 404, menjalankan script dan melihat 429, atau menggunakan proxy lalu muncul 407? Angka-angka itu bukan error acak. Mereka adalah HTTP status code, yaitu kode yang dikirim server untuk memberi tahu hasil dari sebuah HTTP request.
Status code membantu browser, aplikasi, API client, crawler, proxy, dan developer memahami apa yang terjadi pada sebuah request. Apakah request berhasil, dialihkan ke URL lain, ditolak, terlalu banyak request, atau server sedang bermasalah.
Karena itu status code sangat penting saat troubleshooting web, proxy, scraping, API, CDN, reverse proxy, maupun aplikasi biasa.
Kalau kamu belum familiar dengan jalur request dari browser ke server, artikel TCP vs UDP dan TCP Handshake bisa menjadi fondasi sebelum masuk lebih dalam ke HTTP.
Apa Itu HTTP Status Code?
HTTP status code adalah angka tiga digit yang dikirim dalam response HTTP untuk menunjukkan hasil pemrosesan sebuah request.
Contoh sederhana:
Artinya server berhasil menangani request tersebut.
Contoh lain:
Artinya resource yang diminta tidak ditemukan pada server.
Request
Response
HTTP Status Code Dibagi Menjadi Berapa Kategori?
Status code dibagi menjadi lima kelompok besar berdasarkan angka pertamanya.
| Range | Kategori | Arti Umum |
|---|---|---|
100–199 |
Informational | Request sedang diproses atau ada informasi sementara. |
200–299 |
Success | Request berhasil diproses. |
300–399 |
Redirection | Client perlu menggunakan resource lain atau cache tertentu. |
400–499 |
Client Error | Ada masalah dari sisi request atau akses client. |
500–599 |
Server Error | Server gagal menangani request. |
Apa Arti Status 200 OK?
200 OK adalah salah satu status paling umum.
Artinya request berhasil diproses oleh server.
Makna detailnya bisa berbeda tergantung HTTP method yang digunakan.
Untuk GET, 200 biasanya berarti resource berhasil dikirim ke client.
Untuk POST atau PUT, response bisa berisi hasil dari proses yang dilakukan.
Apakah 200 Selalu Berarti Semua Berjalan Sempurna?
Tidak selalu dari sisi aplikasi.
Status 200 hanya mengatakan bahwa request berhasil diproses pada level HTTP.
Aplikasi masih bisa mengembalikan data seperti:
dengan status HTTP 200.
Jadi developer harus melihat status code dan isi response sekaligus.
Apa Arti 201 Created?
201 Created biasanya digunakan ketika request berhasil dan menghasilkan resource baru.
Contohnya API:
berhasil membuat user baru.
Server bisa membalas:
Apa Arti 204 No Content?
204 No Content berarti request berhasil tetapi server tidak mengirim message body.
Contohnya:
bisa berhasil lalu server merespons:
Apa Itu Redirect?
Redirect terjadi ketika server mengarahkan client menuju lokasi lain.
Misalnya:
dialihkan ke:
Server bisa mengirim status 3xx bersama header Location.
Apa Arti 301 Moved Permanently?
301 Moved Permanently berarti resource telah dipindahkan secara permanen ke URL lain.
Contoh:
Browser kemudian dapat membuka URL baru tersebut.
Kapan 301 Digunakan?
301 sering dipakai ketika:
- pindah domain,
- mengubah struktur URL,
- mengalihkan HTTP ke HTTPS,
- menggabungkan halaman lama ke URL baru.
Dalam SEO, 301 juga penting karena memberi sinyal bahwa pemindahan bersifat permanen.
Apa Arti 302 Found?
302 Found biasanya menunjukkan redirect sementara.
Client diarahkan ke lokasi lain, tetapi URL asli tetap dianggap relevan untuk request berikutnya.
301 vs 302 Apa Bedanya?
| Aspek | 301 | 302 |
|---|---|---|
| Sifat | Permanen | Sementara |
| URL lama | Sudah pindah | Masih dianggap berlaku |
| Use case | Migrasi permanen | Redirect sementara |
Apa Arti 304 Not Modified?
304 Not Modified berhubungan dengan caching.
Client bisa menanyakan apakah resource sudah berubah sejak versi terakhir.
Kalau belum berubah, server dapat mengembalikan:
Browser lalu menggunakan resource yang sudah ada di cache tanpa perlu mengunduh ulang seluruh body.
Apa Arti 400 Bad Request?
400 Bad Request menunjukkan server tidak dapat atau tidak mau memproses request karena dianggap bermasalah dari sisi client.
Contohnya:
- request syntax rusak,
- format data salah,
- request framing tidak valid,
- payload tidak sesuai yang diharapkan.
Contoh 400 pada API
Misalnya API membutuhkan:
tetapi client mengirim JSON yang rusak:
server bisa membalas:
Apa Arti 401 Unauthorized?
401 Unauthorized secara praktis lebih dekat dengan kondisi belum terautentikasi.
Server meminta client membuktikan identitasnya.
Misalnya API membutuhkan token:
tetapi token tidak ada atau invalid.
Server dapat mengembalikan:
Apa Arti 403 Forbidden?
403 Forbidden berarti server memahami request tetapi menolak memberikan akses.
Ini berbeda dengan 401.
| Status | Arti Umum |
|---|---|
| 401 | Client belum atau gagal authentication. |
| 403 | Server menolak akses. |
Kenapa Website Bisa Memberikan 403?
Penyebabnya bisa banyak:
- izin akun tidak cukup,
- IP diblokir,
- WAF menolak request,
- country restriction,
- request dianggap automated,
- hotlink protection,
- server policy.
Jadi 403 tidak otomatis berarti proxy rusak.
Apa Arti 404 Not Found?
404 Not Found berarti server tidak menemukan resource yang diminta.
server bisa membalas:
Penyebabnya bisa berupa:
- URL salah,
- halaman sudah dihapus,
- route aplikasi tidak ada,
- file tidak tersedia.
404 Tidak Selalu Berarti Domain Mati
Kalau homepage bisa dibuka tetapi satu URL menghasilkan 404, server masih hidup.
Yang tidak ditemukan adalah resource tertentu.
Contohnya:
Apa Arti 407 Proxy Authentication Required?
407 Proxy Authentication Required khusus berkaitan dengan proxy.
Artinya proxy meminta client melakukan authentication.
Ini berbeda dari 401 yang biasanya datang dari server tujuan.
407
Kalau kamu menggunakan private proxy dan melihat 407, cek username, password, atau metode authentication proxy.
401 vs 407
| Status | Yang Meminta Authentication |
|---|---|
| 401 | Server / website / API tujuan |
| 407 | Proxy server |
Apa Arti 408 Request Timeout?
408 Request Timeout berarti server memutuskan menutup koneksi karena request tidak selesai dalam waktu yang diharapkan.
Status ini berbeda dari network timeout pada client.
Client timeout bisa terjadi sebelum ada HTTP response sama sekali.
Apa Arti 429 Too Many Requests?
429 Too Many Requests menunjukkan client mengirim terlalu banyak request dalam periode tertentu.
Status ini banyak ditemui pada:
- API,
- web scraping,
- automation,
- login endpoint,
- rate-limited service.
Kenapa 429 Terjadi?
Server atau gateway dapat memiliki rate limit seperti:
Kalau client melebihi batas tersebut, server dapat mulai mengembalikan 429.
Apa Itu Retry-After?
Server dapat mengirim header:
yang memberi petunjuk bahwa client sebaiknya menunggu sebelum mencoba lagi.
Untuk automation yang baik, 429 seharusnya ditangani dengan:
- mengurangi request rate,
- backoff,
- menghormati Retry-After,
- mengikuti API policy.
Butuh Proxy untuk Testing Request dan Status HTTP?
GudangProxy menyediakan daftar proxy gratis berdasarkan negara, protokol, tingkat anonimitas, dan status koneksi. Kamu bisa membandingkan bagaimana request melalui endpoint berbeda menghasilkan response HTTP yang berbeda.
Lihat Daftar Proxy Gratis →Apakah Mengganti Proxy Bisa Menghilangkan 429?
Jangan menganggap rotasi IP adalah solusi utama untuk rate limit.
429 adalah sinyal bahwa layanan meminta client menurunkan frekuensi request.
Rate limit juga bisa dihitung berdasarkan:
- API key,
- akun,
- session,
- IP,
- user identifier,
- kombinasi beberapa sinyal.
Jadi mengganti IP belum tentu mengubah hasil.
Untuk automation yang sesuai aturan, lebih baik hormati rate limit layanan.
Apa Arti 500 Internal Server Error?
500 Internal Server Error merupakan server error generik.
Artinya server mengalami kondisi yang tidak dapat ditangani dengan status 5xx yang lebih spesifik.
Penyebabnya bisa berupa:
- exception aplikasi,
- bug backend,
- config error,
- database issue,
- dependency gagal,
- resource exhaustion.
Apakah 500 Berarti Client Salah?
Biasanya status 500 menunjukkan masalah di sisi server.
Tetapi request tertentu bisa memicu bug server.
Jadi saat troubleshooting, developer tetap perlu melihat:
- request input,
- application log,
- stack trace,
- database log,
- upstream dependency.
Apa Arti 502 Bad Gateway?
502 Bad Gateway biasanya muncul ketika server bertindak sebagai gateway atau proxy dan menerima response yang tidak valid dari upstream.
Contohnya Nginx menerima request, lalu backend aplikasi gagal memberikan response yang sesuai.
Apa Arti 503 Service Unavailable?
503 Service Unavailable berarti server sementara tidak siap menangani request.
Contohnya:
- maintenance,
- server overload,
- backend belum siap,
- service sedang restart.
Status ini idealnya digunakan untuk kondisi sementara.
Apa Arti 504 Gateway Timeout?
504 Gateway Timeout muncul ketika gateway atau proxy tidak mendapatkan response upstream dalam waktu yang diperlukan.
Timeout
Ini berbeda dengan 502.
502 vs 504 Apa Bedanya?
| Status | Masalah Umum |
|---|---|
| 502 | Gateway mendapatkan response upstream yang tidak valid. |
| 504 | Gateway tidak menerima response upstream tepat waktu. |
Kenapa Reverse Proxy Sering Menghasilkan 502 atau 504?
Karena reverse proxy berada di antara client dan backend.
Alurnya:
Kalau backend mati, lambat, salah port, atau tidak bisa dijangkau, reverse proxy bisa menghasilkan 502/504 kepada client.
Konsep ini berkaitan dengan artikel Forward Proxy vs Reverse Proxy.
Apa Arti 501 Not Implemented?
501 Not Implemented berarti server tidak mendukung functionality yang diperlukan untuk memenuhi request.
Contohnya server tidak mendukung HTTP method tertentu.
Apa Arti 405 Method Not Allowed?
405 Method Not Allowed berarti server mengenal method tersebut tetapi tidak mengizinkannya untuk resource tertentu.
Misalnya endpoint hanya menerima:
tetapi client mengirim:
server bisa menjawab 405.
400 vs 422 Apa Bedanya?
400 biasanya lebih umum untuk request yang dianggap invalid.
422 Unprocessable Content digunakan ketika syntax request dapat dipahami tetapi content-nya tidak bisa diproses secara semantik.
Contoh API menerima JSON valid:
format JSON benar, tetapi nilai bisnis tidak valid.
Apa Arti 409 Conflict?
409 Conflict digunakan ketika request bertentangan dengan state resource saat ini.
Contohnya mencoba membuat username yang sudah dipakai atau update data yang mengalami version conflict.
Apa Arti 410 Gone?
410 Gone berarti resource sudah tidak tersedia dan kondisi tersebut dianggap permanen.
Ini berbeda dari 404 yang hanya mengatakan resource tidak ditemukan.
| Status | Arti Umum |
|---|---|
| 404 | Resource tidak ditemukan. |
| 410 | Resource diketahui sudah dihapus permanen. |
Apa Arti 418 I'm a Teapot?
418 I'm a Teapot berasal dari RFC lelucon dan tetap terkenal di komunitas developer.
Status ini bukan status yang normal dipakai untuk aplikasi production sehari-hari.
Apa Arti 451 Unavailable for Legal Reasons?
451 Unavailable for Legal Reasons digunakan ketika resource tidak dapat diberikan karena alasan hukum.
Contohnya pembatasan konten berdasarkan kewajiban legal tertentu.
Apa Arti 511 Network Authentication Required?
511 Network Authentication Required dapat muncul ketika jaringan membutuhkan authentication sebelum memberikan akses.
Contohnya captive portal pada WiFi tertentu.
Ini berbeda dari 401 atau 407 karena konteksnya adalah akses ke jaringan.
HTTP Error vs Network Error
Ini sangat penting saat troubleshooting.
Kalau kamu mendapatkan:
artinya koneksi ke HTTP server sudah berhasil dan server sempat mengirim response.
Tapi kalau mendapatkan:
bisa jadi HTTP belum terjadi sama sekali.
| Error | Layer Umum |
|---|---|
| 404 | HTTP |
| 500 | HTTP/Application |
| Connection refused | TCP/Network |
| DNS resolution failed | DNS |
| TLS certificate error | TLS |
Kenapa Proxy Bisa Menghasilkan Status Code Sendiri?
Proxy adalah server di tengah jalur request.
Jadi response yang dilihat client tidak selalu berasal langsung dari website tujuan.
Contohnya:
407 / 403
Proxy bisa mengembalikan error sebelum request diteruskan.
Bagaimana Tahu Error Berasal dari Proxy atau Website?
Lihat:
- status code,
- response header,
- response body,
- log proxy,
- hasil request tanpa proxy,
- hasil request melalui proxy lain.
Misalnya 407 hampir pasti berkaitan dengan proxy authentication.
403 bisa berasal dari website atau proxy, jadi perlu investigasi tambahan.
Cara Melihat HTTP Status dengan cURL
Gunakan:
Contoh output:
Untuk melihat lebih detail:
Cara Melihat Status Saja dengan cURL
Kamu bisa menggunakan:
Output:
Cara Mengecek Status melalui Proxy
Misalnya menggunakan HTTP proxy:
Dari output verbose kamu bisa melihat response dari proxy dan destination.
HTTP Status Code pada Python Requests
Contoh:
Untuk memunculkan exception pada status error:
GudangProxy sudah membahas implementasi lengkapnya di artikel Proxy di Python Requests.
HTTP Status Code dan Web Scraping
Status code sangat penting dalam scraping.
Contohnya:
| Status | Apa yang Sebaiknya Dilakukan? |
|---|---|
| 200 | Proses response sesuai kebutuhan. |
| 301/302 | Ikuti redirect jika sesuai. |
| 403 | Cek akses, policy, autentikasi, dan WAF. |
| 404 | Tandai resource tidak ditemukan. |
| 429 | Kurangi request rate dan hormati Retry-After. |
| 500/502/503/504 | Retry terbatas jika sesuai dan gunakan backoff. |
Jangan Retry Semua Error
Tidak semua status perlu di-retry.
Contoh:
Retry tanpa batas justru bisa memperburuk beban server.
Apa Itu Exponential Backoff?
Exponential backoff berarti jeda retry semakin lama.
Contohnya:
Model seperti ini membantu menghindari retry storm.
HTTP Status dan Monitoring
Status code juga menjadi salah satu indikator penting untuk monitoring website.
Contohnya:
| Kondisi | Interpretasi Awal |
|---|---|
| 200 | Endpoint merespons sukses. |
| 301 | Ada redirect. |
| 404 | Resource tidak ditemukan. |
| 500 | Aplikasi/server error. |
| 503 | Service sementara tidak tersedia. |
Tapi health check jangan hanya melihat 200. Bisa saja homepage 200 sementara database sudah bermasalah pada endpoint lain.
HTTP Status dan SEO
Status code juga punya dampak pada crawler dan indexing.
Beberapa contoh umum:
- 200 → halaman tersedia,
- 301 → pemindahan permanen,
- 404 → halaman tidak ditemukan,
- 410 → resource sengaja dihapus,
- 5xx → server sedang bermasalah.
Redirect chain dan error server yang terus-menerus juga dapat mengganggu crawling.
Soft 404 Itu Apa?
Soft 404 terjadi ketika halaman sebenarnya tidak memiliki konten yang diminta tetapi server tetap mengembalikan status seperti 200.
Contohnya:
Secara aplikasi terlihat seperti halaman error, tetapi secara HTTP server bilang sukses.
Ini bisa membingungkan crawler dan monitoring.
HTTP Status Code dan API
API yang baik biasanya menggunakan status code sesuai hasil operasi.
Contohnya:
| Operasi | Status Umum |
|---|---|
| GET sukses | 200 |
| Create resource | 201 |
| Delete tanpa body | 204 |
| Input invalid | 400 / 422 |
| Belum login | 401 |
| Tidak punya izin | 403 |
| Resource tidak ada | 404 |
| Terlalu banyak request | 429 |
| Server error | 500 |
Kesalahan Umum Saat Membaca HTTP Status
- Menganggap semua 4xx berasal dari server rusak.
- Menganggap 403 selalu karena IP proxy.
- Menganggap 404 berarti server offline.
- Menyamakan 401 dengan 403.
- Menyamakan 401 dengan 407.
- Menganggap semua 5xx perlu retry tanpa batas.
- Menganggap 429 harus diselesaikan dengan ganti IP.
- Menganggap 200 selalu berarti aplikasi sukses secara bisnis.
- Menyamakan network timeout dengan HTTP 408.
Ringkasan Status Code yang Sering Ditemui
| Status | Arti Singkat |
|---|---|
| 200 | Request berhasil. |
| 201 | Resource berhasil dibuat. |
| 204 | Sukses tanpa response body. |
| 301 | Redirect permanen. |
| 302 | Redirect sementara. |
| 304 | Gunakan cached resource. |
| 400 | Bad request. |
| 401 | Authentication diperlukan. |
| 403 | Akses ditolak. |
| 404 | Resource tidak ditemukan. |
| 407 | Proxy authentication diperlukan. |
| 408 | Request timeout. |
| 429 | Terlalu banyak request. |
| 500 | Internal server error. |
| 502 | Bad gateway. |
| 503 | Service unavailable. |
| 504 | Gateway timeout. |
FAQ HTTP Status Code
Apa itu HTTP status code?
HTTP status code adalah angka tiga digit yang dikirim server dalam response untuk menunjukkan hasil pemrosesan sebuah HTTP request.
Apa arti 200 OK?
200 berarti request berhasil diproses oleh server.
Apa beda 301 dan 302?
301 digunakan untuk redirect permanen, sedangkan 302 biasanya digunakan untuk redirect sementara.
Apa arti 403 Forbidden?
403 berarti server memahami request tetapi menolak memberikan akses.
Apa arti 404 Not Found?
404 berarti server tidak menemukan resource yang diminta.
Apa arti 407 Proxy Authentication Required?
407 berarti proxy meminta authentication sebelum meneruskan request.
Apa arti 429 Too Many Requests?
429 berarti client mengirim terlalu banyak request menurut rate limit server atau layanan.
Apa arti 500 Internal Server Error?
500 adalah server error generik yang menunjukkan server mengalami kondisi yang tidak dapat ditangani dengan status yang lebih spesifik.
Apa beda 502 dan 504?
502 berarti gateway menerima response upstream yang tidak valid, sedangkan 504 berarti gateway tidak menerima response upstream tepat waktu.
Apakah semua error HTTP berarti proxy bermasalah?
Tidak. Status code bisa berasal dari website, API, reverse proxy, gateway, CDN, atau forward proxy. Perlu melihat response lengkap dan jalur request untuk mengetahui sumbernya.
