Pendahuluan

Untuk penjelasan awal mengenai HTTP Response status code, bisa lihat di sini.

Setiap kali kita melakukan request HTTP ke sebuah API, maka kita akan mendapatkan hasil dalam bentuk HTTP Response.

Dan didalam HTTP Response ada HTTP Response Status Code.

Secara sederhana, Response Status Code ini diperlukan sebagai standar agreement antara client dan server mengenai status dari sebuah HTTP Request.

Spesifikasinya ada di RFC 9110


Bagaimana implementasinya ?


Penomoran Http Response Status Code ini juga tidak sembarangan penomoran saja.

Akan tetapi ada Semantic juga didalamnya, atau makna di penomoran tersebut.

Oleh karena itu HTTP Response Status Code termasuk salah satu dari HTTP Semantic di RFC 9110

Secara sederhana, maka penomoran HTTP Response code itu didesain sbb :

  • jumlah digit dari HTTP Response Status Code itu adalah 3 digit.
  • digit pertama dari Status Code itu mencerminkan kategori dari HTTP Response.
  • dua digit sisanya tidak mempunyai fungsi kategori.

Sehingga contoh HTTP Response Status Code selalu dalam 3 digit seperti 200, 500, 404, 400, 203, 204, dll.

Digit pertamanya merupakan kategori/tipe dari response nya , yaitu :

Status Code Artinya
1xx (Informational) HTTP Request diterima, dan proses dilanjutkan
2xx (Successful) HTTP Request diterima, berhasil diproses di sisi server
3xx (Redirection) HTTP Request diterima dan butuh aksi tambahan dari client agar requestnya berhasil
4xx (Client Error) Terdapat sintaks yang salah atau tidak lengkap dari HTTP Request
5xx (Server Error) HTTP Request adalah request yang valid, tetapi server gagal memprosesnya


Apa implikasinya ?


Implikasinya tentu saja adalah :

Ketika kita membuat sebuah HTTP Response dari sebuah REST API, maka kita sebaiknya mengikuti standar Status Code yang telah didefinisikan diatas.

Misalnya :

  • Kalau kita menggunakan proses batching di sisi server dengan memanggil sebuah REST API sebagai triggernya, dan proses batching itu membutuhkan banyak waktu, maka kita bisa mengembalikan status 202 Accepted daripada status 200 OK. Status Code 202 Accepted ini mengindikasikan bahwa HTTP Request nya diterima dan dimulai untuk pemroresannya. Akan tetapi belum lengkap selesai processingnya. Sehingga cocok dengan kasus proses Batching yang ditrigger melalui HTTP REST API.

  • Kalau kita menemukan di sebuah HTTP Request, format datanya tidak sesuai dengan yang kita harapkan, maka kita bisa mengembalikan status 400 Bad Request, daripada mengembalikan status 200 OK atau 404 Not Found

  • dll.


Apa kecenderungan Software Engineer selama ini ?


Selama ini, Software Engineer kebanyakan menganggap bahwa cuma ada 2 status yang perlu dikirimkan , yaitu :

  • 200 OK, ketika HTTP Request sukses dijalankan.
  • 500 Internal Server Error, ketika terjadi kesalahan baik validasi, pemrosesan, atau lainnya.

Padahal kalau kita lihat banyak Status Code yang bisa dipakai untuk merepresentasikan kasus-kasus yang terjadi di dalam pemanggilan HTTP REST API.

Oleh karena itu, sebaiknya kita mencoba untuk menggunakan Status Code yang tepat untuk menggambarkan kasus yang terjadi terhadap sebuah HTTP Request yang masuk ke API kita.

Demikian saja…

Kita lanjut ke Status Code 2xx - Part 1