Kode status HTTP

Kode yang paling sering muncul dari API dan CDN. Kode eksperimental langka tidak disertakan.

Diperbarui:

KodeNamaArti
200OKSukses dengan isi
201DibuatSumber daya dibuat
204Tanpa isiSukses, isi kosong
301Dipindah permanenPengalihan permanen
302DitemukanPengalihan sementara
304Tidak berubahGunakan salinan cache
400Permintaan tidak validPermintaan klien tidak valid
401Tidak terotorisasiAutentikasi diperlukan / gagal
403DilarangTerautentikasi tetapi ditolak
404Tidak ditemukanSumber daya tidak ada
405Metode tidak diizinkanMetode HTTP salah
408Permintaan habis waktuKlien terlalu lambat
409KonflikKonflik status
410Telah hilangDihapus permanen
422Entitas tak dapat diprosesSemantik tidak valid
429Terlalu banyak permintaanDibatasi laju
500Kesalahan server internalKesalahan server
502Gateway tidak validRespons upstream tidak valid
503Layanan tidak tersediaKelebihan beban / mati
504Habis waktu gatewayHabis waktu upstream

Catatan

Lima kelas kode status

Digit pertama memberi tahu Anda siapa yang bertanggung jawab dan secara kasar apa yang terjadi. 1xx bersifat informasi dan jarang dilihat oleh klien. 2xx berarti berhasil — 200 OK dengan tubuh respons, 204 No Content tanpa tubuh, 206 untuk unduhan parsial. 3xx berarti sumber dayanya ada di tempat lain. 4xx berarti permintaan itu sendiri yang salah: sintaks buruk, kredensial hilang, atau batas laju terlampaui. 5xx berarti server gagal padahal permintaan sudah benar. Membaca hanya digit pertama saja sudah memberi tahu apakah perlu memperbaiki klien atau menaikkan masalah ke sisi server.

Memilih redirect yang tepat

301 dan 308 keduanya berarti permanen; 302 dan 307 keduanya berarti sementara. Perbedaannya terletak pada penanganan metode: 301 dan 302 secara historis membiarkan klien mengubah POST menjadi GET, sedangkan 307 dan 308 mempertahankan metode dan tubuh asli, yang penting bagi API dan pengiriman formulir. Gunakan 301 untuk URL yang benar-benar pindah selamanya, dan 302 atau 307 untuk penataan rute sementara seperti halaman pemeliharaan atau uji A/B. Waspadai rantai redirect — setiap hop tambahan menghabiskan latensi dan ekuitas tautan, jadi redirect langsung ke tujuan akhir.

Mengurai kesalahan 4xx

401 berarti autentikasi tidak ada atau gagal, sehingga mengirim kredensial yang valid dapat menyelesaikannya; 403 berarti permintaan dipahami dan diautentikasi namun tidak diizinkan, dan mencoba lagi dengan kredensial yang sama tidak akan membantu. 404 berarti sumber daya tidak ada; 410 menandakan sumber daya pernah ada dan sengaja dihilangkan. 429 berarti Anda kena batas laju dan harus menurunkan frekuensi permintaan, dengan menghormati header Retry-After. 400 biasanya berarti input salah format, 405 berarti metode salah untuk URL tersebut, dan 422 berarti sintaksnya valid tetapi kontennya gagal validasi.

Membaca kode 5xx

500 adalah error internal yang generik; 502 Bad Gateway berarti server hulu mengembalikan sesuatu yang tidak usable; 503 berarti layanan sedang tidak tersedia atau kelebihan beban; 504 berarti server hulu timed out. Ini adalah masalah server, bukan pemanggil, sehingga penyelesaiannya adalah mencoba lagi dengan backoff, memeriksa kesehatan server hulu, atau mengurangi beban. CDN dapat mengeluarkan 502, 503, atau 504 atas nama origin yang tidak dapat dijangkau, itulah mengapa error yang sama dapat datang dari dua tempat yang sangat berbeda — periksa header server dan cache-status untuk mengetahui penyebabnya.

Kode status dalam praktik: API dan caching

Dua penggunaan sehari-hari yang patut diperhatikan. Pertama, caching: 200 dengan header Cache-Control dapat disimpan, 304 Not Modified memberi tahu klien untuk menggunakan salinannya, dan 5xx seharusnya tidak di-cache. Kedua, API: POST yang membuat sumber daya sebaiknya mengembalikan 201 dengan header Location, DELETE sering mengembalikan 204, dan PATCH yang tidak mengubah apa pun dapat mengembalikan 200 atau 204. Klien yang berperilaku baik mengambil keputusan berdasarkan kelas terlebih dahulu (2xx, 4xx, 5xx) dan hanya kemudian berdasarkan kode tepatnya, sehingga logika retry dan backoff tetap sederhana dan dapat diprediksi.

Pertanyaan umum

Apa arti kode HTTP 403?
403 berarti server memahami dan mengautentikasi permintaan, tetapi menolak memberikan akses ke resource. Berbeda dari 401, login ulang tidak akan menyelesaikannya.
Apa bedanya redirect HTTP 301 dan 302?
301 menandakan perpindahan permanen, jadi klien dan mesin pencari harus memakai URL baru. 302 adalah redirect sementara dan URL lama tetap berlaku.
Apa arti HTTP 429 dan bagaimana cara memperbaikinya?
429 berarti Anda telah mencapai batas laju permintaan. Perlambat permintaan dan patuhi header Retry-After jika server mengirimkannya.

Sumber