Pendahuluan

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

Masing-masingnya mengisyaratkan Status Code response dari request yang diminta waktu melakukan pemanggilan HTTP.

Sekarang kita coba untuk melihat kasus untuk kasus Status Code 4xx, yang secara umum berarti ada kesalahan request dari HTTP Client


HTTP Response Code 4xx ?


Dalam memahami kasus ini kita mengacu ke RFC (Request For Comment) , sebagai standar dokumentasi untuk teknologi internet.

Untuk kasus HTTP Response Code 4xx ini, maka patokan kita adalah :

  • RFC-9110, berlaku untuk status code 400 s/d 422, 426
  • RFC-4918, berlaku untuk status code 423 dan 424
  • RFC-8470, berlaku untuk status code 425
  • RFC-6585, berlaku untuk status code 428, 429, 431

Kita perlu patokan RFC ini untuk dapat memahami dasar awal untuk menentukan kasus yang tepat dalam menentukan status code yang tepat.

Daftarnya juga bisa dilihat di IANA HTTP Status Code Registry

Secara umum Status Code 4xx ini mengisyaratkan bahwa :

Http requestnya diterima di server, akan tetapi HTTP Server tidak melanjutkan prosesnya karena ada yang kurang atau salah dari sisi HTTP Client yang perlu diperbaiki.

Oleh karenanya HTTP Server harus mengirimkan kembalian dalam bentuk representasi yang mennginformasikan hal yang kurang/salah tersebut.

Coba kita lihat daftar HTTP Status Code nya satu persatu :



HTTP Status Code - 400 - Bad Request

Response Status Code 400 ini artinya Server tidak dapat memproses HTTP Request dari client karena adanya error/format/data yang datang dari requestnya HTTP Client.

Misalnya :

  • Sintaks HTTP Requestnya salah atau kurang, misalnya, HTTP Server mengharapkan ada 4 URL parameter di HTTP Requestnya, tapi yang dikirimkan dari HTTP request cuma 3 URL parameter.
  • Format datanya yang salah dikirimkan. Misalnya HTTP Server mengharapkan data dalam bentuk numeric, akan tetapi yang dikirimkan dalam bentuk karakter abjad.
  • dll


HTTP Status Code - 401 - Unauthorized

Response Status Code 401 ini artinya jelas, bahwa Server tidak dapat memproses HTTP Request karena kekurangan/tidak ada Kredensial untuk otentikasi ke resource yang diinginkan yang mestinya diprovide oleh HTTP Request.

Misalnya :

  • Ketika kita login ke sebuah website, dengan username/password yang salah.
  • Ketika ada proses otentikasi yang melibatkan Code Challenge seperti di OAuth2, dan tidak terdaftar di Authentication Server.
  • dll


HTTP Status Code - 402 - Payment Required

Response Status Code 402 ini masih belum dipakai, dan masih dalam tahapan Experimental.

Secara umum, Status Code 402 ini digunakan untuk kebutuhan transaksi digital atau sistem micro payment.

Dengan kata lain, resource atau sumber daya yang diinginkan tidak tersedia, sampai client melakukan pembayaran.

Akan tetapi status code 402 belum distandarisasi mengenai apa saja kasusnya, dan contextnya.



HTTP Status Code - 403 - Forbidden

Response Status Code 403 ini artinya Http requestnya diterima, tetapi Server menolak untuk mengembalikan hasil resource yang diinginkan .

Contohnya :

  • Kita berhasil login ke sebuah website, tetapi ketika mengakses sebuah menu terkait data, kita mendapatkan response status code 403, sehingga tidak ada data yang kita dapatkan.
  • dll.

HTTP Status Code 403 ini umumnya berkaitan dengan Otorisasi kita dalam mengakses sebuah resource.

Ingat ya Otorisasi bukan Otentikasi.

Walaupun bisa saja HTTP Server ini mengembalikan HTTP Status Code 403 ini bukan karena Otorisasi, akan tetapi karena misalnya memang misalnya aksesnya tidak dibuka lagi untuk umum, atau alasan lainnya.

HTTP Server selain mengembalikan HTTP Status Code 403, juga bisa mengembalikan alasan kenapa permintaan HTTP Request nya di tolak. Alasan ini bisa dimasukkan ke dalam body content.

Akan tetapi kalau HTTP Server merasa perlu “menyamarkan” kasus ini, maka sebaiknya HTTP Server mengembalikan HTTP Status 404 (Not Found).



HTTP Status Code - 405 - Method Not Allowed

Response Status Code 405 ini artinya Http requestnya diterima, tetapi HTTP method yang diminta tidak disupport oleh resource yang tersedia.

Bisa dilihat penjelasan mengenai HTTP Method

Kasusnya HTTP Status 405 bisa saja terjadi karena :

  • Kita membatasi HTTP Request Method cuma untuk GET, POST, PUT, DELETE saja, di API Gateway kita. Sehingga ketika ada yang mencoba memanggil dengan HTTP Method PATCH, maka Server akan mengembalikan status ini.

Kita lanjut ke Status Code 4xx - Bagian 2