Skip to main content

Session & Cookie

Web itu sifatnya stateless yang berarti hubungan antara user/pengunjung web & webserver hanya berlangsung sesaat & selesai ketika server mengirim respon balik ke browser. Jadi server nggak bakal tahu kita dalam posisi sudah login atau belum, produk apa yang barusan kita masukkan shopping cart tanpa data tambahan yang disimpan di sisi klien & server. Session & cookie ada untuk mengatasi masalah itu.

Session

Session adalah data di server yang merepresentasikan user tertentu. Biasanya disimpan dalam sebuah tabel di database & isinya minimal sederet karakter unik untuk setiap user yang disebut session id. Satu id unik buat satu user, satu user bisa punya beberapa session id. Ada juga yang ditambah data tanggal & waktu session dibuat dan juga kapan session itu kedaluarsa (expired).

Session ID
User ID
abcdefgh12340001
def776260002
xyz65266520001

Dari session id, aplikasi di sisi server bisa mencari data user yang bersangkutan & bisa mengecek rekues mana dari user yang mana karena session id ini nempel di rekues yang dikirim browser dalam bentuk cookie.

Cookie adalah data temporer yang disimpan oleh browser, bisa atas perintah server atau dibuat pakai skrip JS, & otomatis ikut dikirim di dalam setiap rekues dari browser. Untuk memerintahkan browser menyimpan cookie, server mengirim header yang namanya Set-Cookie.

Data yang disimpan bisa bermacam-macam selain session id. Kalo cookie berisi session, server bisa baca session ini & mencocokkan datanya dengan data yang ada di tabel session. Kalo ternyata sudah expired rekuesnya ditolak & user diarahkan ke halaman login.