Redirect
Pada saat kita membuat sebuah website, jika pengguna melakukan akses ke berbagai halaman dengan sembarang maka akan terjadi halaman tidak ditemukan. Maka kita perlu membuat redirect
sebuah halaman jika pengguna melakukan suatu aksi pada halaman website kita. Misalkan setelah selesai login, maka kita akan lakukan redirect
ke halaman dashbard. Redirect
itu sendiri sebenarnya sudah standard dalam HTTP dan bisa melihat di halaman website https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections. Kita hanya perlu membuat response code 3xx dan menambahkan header location yang akan dituju. Untungnya pada Golang ada fungsi yang bisa kita gunakan untuk mempermudah ini.
Cara Implementasinya pada Golang
Baiklah kita akan coba mengimplementasikan Redirection HTTP pada Golang. Sebelumnya kita buat terlebih dahulu dua fungsi handler dibawah ini.
func RedirectToHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello Santekno")
}
func RedirectFromHandler(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, "/redirect-to", http.StatusTemporaryRedirect)
}
Setelah itu kita panggil handler yang kita buat pada router mux
seperti dibawah ini.
mux.HandleFunc("/redirect-to", RedirectToHandler)
mux.HandleFunc("/redirect-from", RedirectFromHandler)
Jalankan program dan buka browser dengan mengakses kedua halaman dibawah ini.
http://localhost:8080/redirect-to
http://localhost:8080/redirect-from
Maka akan terlihat halaman seperti dibawah ini.
Maka jika kita mengakses halaman redirect-from
maka akan dialihkan halamannya ke dalam redirect-to
kenapa seperti itu? karena pada handler kita mengalihkan halaman tersebut agar tidak bisa diakses dan diarahkan ke halaman yang lain.