Pendahuluan

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

Dalam HTTP Response ini ada status code berupa 3 angka yang bisa kita analisa.

Misalnya 200, 201, 400, 404, 500, dll.

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

Untuk Status Code 2xx bisa dilihat di sini

Sekarang kita coba untuk melihat kasus untuk kasus Status Code 3xx, yang secara umum berarti request HTTP nya dilakukan redirection dari server target aslinya.


HTTP Response Code 3xx ?


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

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

  • RFC-9110, berlaku untuk semua status code 300 s/d 308

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 3xx ini mengisyaratkan bahwa :

Http requestnya diterima di server, dimengerti requestnya oleh server, tetapi client harus melakukan aksi tambahan (umumnya adalah HTTP redirection) agar client mendapatkan resource yang diinginkan.

Coba kita lihat daftar HTTP Status Code nya satu persatu :



HTTP Status Code - 300 - Multiple Choice

Response Status Code 300 ini artinya Target resource di HTTP server mempunyai banyak bentuk representasi, sehingga server dapat meminta http client untuk memilih representation mana yang mau dipilih

Ini contohnya adalah ketika sebuah sebuah URL dipetakan mempunyai banyak tipe representasi.

Misalnya :

http://www.url1.com/data

ketika mengakses URL tersebut, URL tersebut bisa mengembalikan tipe :

  • data dalam bentuk JSON
  • data dalam bentuk XML
  • data dalam bentuk HTML

Tiap bentuk representasi diatas disebut sebagai “Variant”.

Dan user agent bisa memilih representasi mana yang mau dipilih.

Tekniknya pun bisa beragam, misalnya :

  • dengan menaruh pilihan-pilihan tersebut di response message. Kemudian bisa ditampilkan di sisi user agent/browser.
  • dengan melakukan trasparent content negotiation, sehingga secara otomatis akan dipilih berdasarkan preferensi user agent yang tercermin dari HTTP Header request.
  • dll.


HTTP Status Code - 301 - Moved Permanently

Response Status Code 301 ini artinya Http requestnya diterima, tetapi resource yang diminta telah dipindah ke URL yang lain, dan URL yang baru dikirimkan sebagai response message, agar user agent/http client bisa melakukan redirect.

Contohnya :

  • Kita melakukan revamp/renovasi website, termasuk URL yang sebelumnya di path /xxxx.html, menjadi /post/xxxx.html.
  • Kita mengubah domain kita dari www.xxx.com, menjadi www.yyy.com.
  • dll.

Ketika ada orang yang mengakses domain lama kita, atau URL lama kita, maka kita bisa mengembalikan HTTP Status Code - 301 ini.

Dengan menginformasikan bahwa resource URL yang lama sudah berpindah, maka user agent/http client bisa melakukan redirection secara otomatis atau manual.

Informasi URL yang baru bisa ditaruh di HTTP Header “Location” di response message nya.



HTTP Status Code - 302 - Found

Response Status Code 302 ini artinya Http requestnya diterima, tetapi resource yang diminta telah dipindah ke URL yang lain untuk sementara waktu, dan URL yang baru dikirimkan sebagai response message, agar user agent/http client bisa melakukan redirect. Tapi di request selanjutnya, bisa saja URL yang lama akan dikembalikan seperti sedia kali.

Sebenarnya status Code 302 ini mirip dengan status code 301, tetapi perubahan URL nya hanya sementara.

Contohnya :

  • Kita melakukan A/B testing terhadap sebuah aplikasi web yang kita punya, sehingga ada 2 URL yang saling menggantikan, tetapi ujung-ujungnya balik ke URL yang asli.
  • dll.

Informasi URL yang baru bisa ditaruh di HTTP Header “Location” di response message nya.


Kita lanjut ke Status Code 3xx - Bagian 2