Kode status HTTP didefinisikan oleh IETF dalam RFC 9110 dan didaftarkan di IANA. Alibaba Cloud OpenAPI umumnya mengikuti standar ini.
Konvensi kode status di Alibaba Cloud OpenAPI
Alibaba Cloud OpenAPI umumnya mengikuti standar kode status HTTP yang dijelaskan dalam topik ini: kode 2xx menandakan panggilan berhasil, 4xx menunjukkan masalah dari sisi pemanggil—seperti parameter tidak valid, kegagalan autentikasi, izin tidak mencukupi, atau kuota terlampaui—sedangkan 5xx menandakan masalah dari sisi server. Panggilan yang gagal biasanya juga mengembalikan bidang Code dan Message untuk diagnostik lebih rinci, serta RequestId yang secara unik mengidentifikasi panggilan tersebut.
Makna semantik dan kondisi pemicu suatu kode status dapat berbeda tergantung layanan cloud. Saat memanggil operasi OpenAPI, rujuk dokumentasi API terkini dari layanan tersebut.
Struktur dan kelas
Kode status merupakan bilangan bulat tiga digit yang menjelaskan hasil permintaan dan semantik responsnya. Nilai yang valid berkisar dari 100 hingga 599. Digit pertama menentukan kelas respons; dua digit terakhir tidak memiliki peran dalam kategorisasi.
|
Kelas |
Makna |
|
1xx (Informational) |
Permintaan telah diterima dan pemrosesan berlanjut. Ini merupakan respons sementara: satu permintaan dapat menghasilkan nol atau lebih respons 1xx sebelum tepat satu respons akhir. |
|
2xx (Successful) |
Permintaan telah berhasil diterima, dipahami, dan disetujui. |
|
3xx (Redirection) |
Diperlukan tindakan lanjutan oleh client untuk menyelesaikan permintaan. |
|
4xx (Client Error) |
Sintaks permintaan salah atau tidak dapat dipenuhi. Kesalahan biasanya berasal dari pemanggil. |
|
5xx (Server Error) |
Server gagal memenuhi permintaan yang tampaknya valid. Kesalahan berasal dari server. |
Kode status terdaftar
Tabel berikut mencantumkan makna standar setiap kode dan spesifikasi yang mendefinisikannya.
1xx informational
Respons 1xx berakhir di akhir bagian header dan tidak dapat membawa konten atau trailer. Karena HTTP/1.0 tidak mendefinisikan kode 1xx, server tidak boleh mengirim respons 1xx ke klien HTTP/1.0.
|
Kode |
Nama standar |
Makna |
Didefinisikan dalam |
|
100 |
Continue |
Bagian awal permintaan telah diterima dan belum ditolak, serta server bersedia menerima isi permintaan. Lanjutkan pengiriman body dan abaikan respons sementara ini. |
RFC 9110 |
|
101 |
Switching Protocols |
Server menerima perubahan protokol yang diminta melalui header Upgrade, dan menyebutkan protokol yang berlaku dalam header Upgrade miliknya sendiri. |
RFC 9110 |
|
102 |
Processing |
Didefinisikan oleh ekstensi WebDAV dan kini sudah usang. Hindari penggunaannya dalam desain baru. |
RFC 2518 |
|
103 |
Early Hints |
Mengembalikan header tertentu, biasanya Link, sebelum respons akhir sehingga client dapat mulai memuat resource secara preemptive. |
RFC 8297 |
2xx successful
|
Kode |
Nama standar |
Makna |
Didefinisikan dalam |
|
200 |
OK |
Permintaan berhasil. Konten respons bergantung pada metode: GET mengembalikan representasi resource target, POST mengembalikan status atau hasil aksi, PUT dan DELETE mengembalikan status aksi, dan OPTIONS mengembalikan opsi komunikasi. |
RFC 9110 |
|
201 |
Created |
Permintaan terpenuhi dan satu atau beberapa resource baru telah dibuat. Resource utama diidentifikasi oleh header Location, atau oleh URI target jika header Location tidak dikirim. |
RFC 9110 |
|
202 |
Accepted |
Permintaan diterima untuk diproses, tetapi pemrosesan belum lengkap dan mungkin akhirnya ditolak. HTTP tidak memiliki fasilitas untuk mengirim ulang kode status dari operasi asinkron, sehingga respons biasanya mengarah ke resource status yang dapat dipolling. |
RFC 9110 |
|
203 |
Non-Authoritative Information |
Permintaan berhasil, tetapi proxy transformasional memodifikasi kontennya, sehingga berbeda dari yang akan dikembalikan oleh origin server dalam respons 200. |
RFC 9110 |
|
204 |
No Content |
Permintaan terpenuhi dan tidak ada konten tambahan untuk dikirim dalam body respons. Metadata tetap dapat dikirim melalui header respons. |
RFC 9110 |
|
205 |
Reset Content |
Permintaan terpenuhi dan client harus mereset tampilan dokumen yang menyebabkan permintaan tersebut, misalnya dengan mengosongkan formulir. |
RFC 9110 |
|
206 |
Partial Content |
Server memenuhi permintaan range dan mengembalikan satu atau beberapa bagian dari resource target. Umum digunakan dalam transfer yang dapat dilanjutkan dan unduhan chunk file besar. |
RFC 9110 |
|
207 |
Multi-Status |
Didefinisikan oleh ekstensi WebDAV. Body membawa status terpisah untuk setiap sub-operasi. |
RFC 4918 |
|
208 |
Already Reported |
Didefinisikan oleh ekstensi binding WebDAV. Menghindari enumerasi resource yang sama berulang kali dalam satu respons. |
RFC 5842 |
|
226 |
IM Used |
Server menerapkan satu atau beberapa encoding delta pada resource target dan mengembalikan delta tersebut alih-alih resource lengkapnya. |
RFC 3229 |
3xx redirection
Kode 301, 302, 307, dan 308 semuanya mengarahkan resource ke URI lain. Perbedaannya terletak pada apakah pengalihan tersebut permanen dan apakah metode permintaan boleh berubah. Karena alasan historis, klien yang menangani 301 dan 302 mungkin mengubah POST menjadi GET. Gunakan 308 dan 307 sebagai gantinya jika metode harus dipertahankan.
|
Kode |
Nama standar |
Makna |
Didefinisikan dalam |
|
300 |
Multiple Choices |
Resource target memiliki lebih dari satu representasi, dan client atau pengguna harus memilih di antara representasi tersebut. |
RFC 9110 |
|
301 |
Moved Permanently |
Resource target diberi URI permanen baru, dan referensi selanjutnya harus menggunakan URI tersebut. Server harus mengirim URI baru tersebut dalam header Location. |
RFC 9110 |
|
302 |
Found |
Resource target sementara berada di URI berbeda. Karena pengalihan ini dapat berubah, terus gunakan URI asli untuk permintaan mendatang. |
RFC 9110 |
|
303 |
See Other |
Server mengalihkan client ke resource lain untuk menjawab permintaan secara tidak langsung. Kirim permintaan GET atau HEAD ke URI dalam header Location dan sajikan hasil tersebut sebagai jawaban. URI baru tersebut tidak setara dengan URI target. |
RFC 9110 |
|
304 |
Not Modified |
Pra-kondisi pada GET atau HEAD kondisional bernilai false, artinya client sudah memiliki representasi yang valid. Server melewatkan pengiriman ulang, dan client dapat menggunakan salinan cache-nya. Respons tidak boleh membawa konten. |
RFC 9110 |
|
305 |
Use Proxy |
Sudah usang. Jangan gunakan dalam implementasi baru. |
RFC 9110 |
|
306 |
(Unused) |
Didefinisikan dalam versi spesifikasi sebelumnya, tidak lagi digunakan, dan dicadangkan. |
RFC 9110 |
|
307 |
Temporary Redirect |
Resource target sementara berada di URI berbeda, dan client tidak boleh mengubah metode permintaan saat mengikuti pengalihan secara otomatis. |
RFC 9110 |
|
308 |
Permanent Redirect |
Memiliki semantik yang sama dengan 301 tetapi mewajibkan client mempertahankan metode permintaan. Didefinisikan pada tahun 2014, lebih lambat daripada kode saudaranya, sehingga beberapa implementasi lama mungkin tidak mengenalinya. |
RFC 9110 |
4xx client error
Kecuali saat merespons HEAD, server sebaiknya menjelaskan kesalahan dalam isi respons dan menunjukkan apakah kondisi tersebut bersifat sementara atau permanen. Kode-kode ini berlaku untuk semua metode permintaan.
|
Kode |
Nama standar |
Makna |
Didefinisikan dalam |
|
400 |
Bad Request |
Server tidak akan memproses permintaan karena kesalahan yang dianggap berasal dari client, seperti sintaks rusak, framing pesan tidak valid, atau routing menyesatkan. |
RFC 9110 |
|
401 |
Unauthorized |
Permintaan tidak memiliki kredensial autentikasi yang valid untuk resource target. Server harus mengirim header WWW-Authenticate yang menyebutkan tantangan yang berlaku. Jika kredensial telah dikirim, kredensial tersebut ditolak. |
RFC 9110 |
|
402 |
Payment Required |
Dicadangkan untuk penggunaan di masa depan. |
RFC 9110 |
|
403 |
Forbidden |
Server memahami permintaan tetapi menolak memenuhinya. Jika kredensial telah dikirim, server menganggapnya tidak mencukupi, dan client tidak boleh mencoba ulang secara otomatis dengan kredensial yang sama. |
RFC 9110 |
|
404 |
Not Found |
Origin server tidak menemukan representasi saat ini dari resource target, atau tidak bersedia mengungkapkan bahwa representasi tersebut ada. |
RFC 9110 |
|
405 |
Method Not Allowed |
Resource target tidak mendukung metode permintaan tersebut. Server harus mengirim header Allow yang mencantumkan metode yang didukung. |
RFC 9110 |
|
406 |
Not Acceptable |
Resource target tidak memiliki representasi yang memenuhi header negosiasi konten dalam permintaan. |
RFC 9110 |
|
407 |
Proxy Authentication Required |
Mirip dengan 401, tetapi client harus melakukan autentikasi dengan proxy alih-alih origin server. |
RFC 9110 |
|
408 |
Request Timeout |
Server tidak menerima permintaan lengkap dalam waktu yang disediakannya untuk menunggu. |
RFC 9110 |
|
409 |
Conflict |
Permintaan bertentangan dengan status saat ini dari resource target. |
RFC 9110 |
|
410 |
Gone |
Resource target tidak lagi tersedia di origin server, dan kondisi ini kemungkinan permanen. |
RFC 9110 |
|
411 |
Length Required |
Server memerlukan header Content-Length pada permintaan. |
RFC 9110 |
|
412 |
Precondition Failed |
Satu atau beberapa pra-kondisi dalam header permintaan bernilai false di server. |
RFC 9110 |
|
413 |
Content Too Large |
Body permintaan lebih besar daripada yang bersedia atau mampu diproses oleh server. |
RFC 9110 |
|
414 |
URI Too Long |
URI target permintaan lebih panjang daripada yang bersedia diinterpretasi oleh server. |
RFC 9110 |
|
415 |
Unsupported Media Type |
Resource target tidak mendukung format konten dari body permintaan. |
RFC 9110 |
|
416 |
Range Not Satisfiable |
Range dalam header Range tidak tumpang tindih dengan jangkauan saat ini dari resource, atau kumpulan range tersebut tidak valid. |
RFC 9110 |
|
417 |
Expectation Failed |
Ekspektasi dalam header Expect tidak dapat dipenuhi oleh server. |
RFC 9110 |
|
418 |
(Unused) |
Sebelumnya digunakan oleh draft protokol informal. Dicadangkan, dan tidak boleh diberikan semantik baru. |
RFC 9110 |
|
421 |
Misdirected Request |
Permintaan diarahkan ke server yang tidak dapat menghasilkan respons otoritatif untuk URI target. |
RFC 9110 |
|
422 |
Unprocessable Content |
Jenis media dan sintaks body permintaan dipahami, tetapi instruksi semantik yang dikandungnya tidak dapat diproses. |
RFC 9110 |
|
423 |
Locked |
Didefinisikan oleh ekstensi WebDAV. Resource target terkunci. |
RFC 4918 |
|
424 |
Failed Dependency |
Didefinisikan oleh ekstensi WebDAV. Aksi yang menjadi dependensi permintaan ini tidak berhasil. |
RFC 4918 |
|
425 |
Too Early |
Server tidak bersedia memproses permintaan yang diputar ulang dalam early data TLS. Coba ulang setelah handshake selesai. |
RFC 8470 |
|
426 |
Upgrade Required |
Server menolak permintaan melalui protokol saat ini tetapi mungkin menerimanya setelah client melakukan upgrade. Respons harus menyertakan header Upgrade. |
RFC 9110 |
|
428 |
Precondition Required |
Server mewajibkan permintaan bersifat kondisional, yang mencegah pembaruan konkuren saling menimpa. |
RFC 6585 |
|
429 |
Too Many Requests |
Client mengirim lebih banyak permintaan daripada batas laju yang diizinkan dalam periode tertentu. Respons mungkin membawa header Retry-After dengan waktu tunggu yang disarankan. |
RFC 6585 |
|
431 |
Request Header Fields Too Large |
Bidang header individual, atau bagian header secara keseluruhan, melebihi ukuran yang dapat diproses oleh server. |
RFC 6585 |
|
451 |
Unavailable For Legal Reasons |
Server menolak akses ke resource sebagai respons terhadap permintaan hukum. |
RFC 7725 |
5xx server error
|
Kode |
Nama standar |
Makna |
Didefinisikan dalam |
|
500 |
Internal Server Error |
Server mengalami kondisi tak terduga yang menghalanginya memenuhi permintaan. |
RFC 9110 |
|
501 |
Not Implemented |
Server tidak mendukung fungsionalitas yang diperlukan untuk memenuhi permintaan, biasanya karena tidak mengenali metode tersebut. |
RFC 9110 |
|
502 |
Bad Gateway |
Server yang bertindak sebagai gateway atau proxy menerima respons tidak valid dari server upstream. |
RFC 9110 |
|
503 |
Service Unavailable |
Server tidak dapat menangani permintaan karena overload sementara atau maintenance terjadwal. Kondisi ini bersifat sementara, dan respons mungkin membawa header Retry-After. |
RFC 9110 |
|
504 |
Gateway Timeout |
Server yang bertindak sebagai gateway atau proxy tidak menerima respons tepat waktu dari server upstream. |
RFC 9110 |
|
505 |
HTTP Version Not Supported |
Server tidak mendukung, atau menolak mendukung, versi mayor HTTP yang digunakan dalam permintaan. |
RFC 9110 |
|
506 |
Variant Also Negotiates |
Didefinisikan oleh ekstensi negosiasi konten transparan. Menunjukkan kesalahan konfigurasi internal pada server. |
RFC 2295 |
|
507 |
Insufficient Storage |
Didefinisikan oleh ekstensi WebDAV. Server tidak dapat mengalokasikan penyimpanan yang cukup untuk menyelesaikan permintaan. |
RFC 4918 |
|
508 |
Loop Detected |
Didefinisikan oleh ekstensi binding WebDAV. Server mendeteksi loop tak hingga saat memproses permintaan. |
RFC 5842 |
|
510 |
Not Extended |
Definisi aslinya telah usang. Kode ini tetap terdaftar, tetapi semantiknya tidak lagi berlaku. |
RFC 2774 |
|
511 |
Network Authentication Required |
Client harus melakukan autentikasi untuk mendapatkan akses jaringan, seperti pada portal captive jaringan Wi-Fi publik. |
RFC 6585 |