Saat Anda login ke sebuah website, lalu berpindah dari halaman profil ke halaman pengaturan tanpa diminta memasukkan kata sandi lagi, ada sesuatu yang bekerja di balik layar. Begitu juga ketika Anda memasukkan tiga barang ke keranjang belanja online, membuka halaman produk lain, dan keranjang itu tetap berisi tiga barang tadi. Website seolah-olah "mengingat" siapa Anda dan apa yang sedang Anda lakukan.
Padahal, secara teknis, sebuah website sebenarnya sangat pelupa. Ia tidak otomatis tahu bahwa dua permintaan halaman yang berbeda datang dari orang yang sama. Mekanisme yang membuatnya bisa mengingat Anda inilah yang disebut session. Pada artikel ini kita akan membahas apa itu session, kenapa website membutuhkannya, bagaimana cara kerjanya, serta bedanya dengan cookie yang sering tertukar.
Session Adalah? Pengertian Singkat
Secara umum, kata session berarti sesi atau rentang waktu ketika sebuah aktivitas berlangsung. Dalam konteks teknologi web, session adalah mekanisme untuk menyimpan data pengguna secara sementara di sisi server selama satu kali kunjungan. Data ini bertahan selama Anda masih aktif berinteraksi dengan website, dan biasanya dihapus ketika Anda logout atau setelah diam terlalu lama.
Bayangkan session sebagai catatan sementara yang dibuat server khusus untuk Anda. Catatan itu bisa berisi status login, isi keranjang belanja, bahasa yang Anda pilih, atau langkah keberapa Anda pada sebuah formulir panjang. Selama session masih hidup, server bisa membaca catatan itu setiap kali Anda meminta halaman baru.
Perlu dicatat sejak awal, istilah "session" punya lebih dari satu makna. Ada session dalam arti teknis di atas, ada session sebagai metrik kunjungan di web analitik, dan ada pula "sharing session" dalam percakapan sehari-hari yang artinya sesi berbagi. Fokus utama artikel ini adalah session dalam konteks web, tetapi dua makna lainnya akan kita bahas singkat supaya tidak membingungkan.
Kenapa Website Butuh Session: Masalah HTTP yang Pelupa
Untuk memahami session, kita perlu tahu dulu kenapa ia diperlukan. Website berkomunikasi lewat protokol bernama HTTP (HyperText Transfer Protocol), dan HTTP punya satu sifat penting: ia bersifat stateless alias tidak berkeadaan. Artinya, setiap permintaan (request) ke server dianggap berdiri sendiri, tanpa hubungan dengan permintaan sebelumnya.
Analoginya seperti petugas loket yang menderita amnesia parah. Setiap kali Anda menghadap, ia menganggap Anda orang baru yang belum pernah ditemui, meski baru semenit lalu Anda berbicara dengannya. Jika website dibiarkan sepolos itu, Anda harus login ulang di setiap halaman, dan keranjang belanja akan selalu kosong begitu Anda pindah halaman.
Di sinilah session mengambil peran. Session memberi server cara untuk mengenali bahwa serangkaian permintaan yang berbeda sebenarnya berasal dari pengguna yang sama. Dengan begitu, sifat pelupa HTTP tertutupi, dan pengalaman menggunakan website terasa berkesinambungan.
Cara Kerja Session: Session ID dan Perjalanan Datanya
Kunci dari cara kerja session adalah sebuah penanda unik bernama session id. Session id adalah rangkaian karakter acak yang panjang, semacam nomor identitas rahasia untuk membedakan satu pengguna dari pengguna lain. Alurnya kira-kira begini.
Saat Anda pertama kali mengunjungi website, server membuat sebuah session baru dan menghasilkan session id unik untuknya. Server lalu mengirim session id itu ke browser Anda, umumnya lewat cookie. Pada setiap permintaan berikutnya, browser otomatis mengirimkan kembali session id tersebut. Server membaca session id yang masuk, mencocokkannya dengan catatan session yang ia simpan, lalu mengambil data yang berkaitan dengan Anda.
Diagram alur kerja session antara browser dan server website.
Yang penting dipahami, data session yang sesungguhnya, seperti status login dan isi keranjang, tersimpan di server. Yang berpindah-pindah antara browser dan server hanyalah session id-nya. Karena itu session id perlu dijaga kerahasiaannya, sebuah poin yang akan kita bahas di bagian keamanan.
Session vs Cookie: Apa Bedanya?
Session dan cookie sering dianggap sama, padahal keduanya berbeda peran dan justru saling melengkapi. Cara termudah membedakannya adalah dengan analogi loker penyimpanan di sebuah gedung.
Ketika Anda menitipkan barang, isi barang disimpan di dalam loker milik gedung, sedangkan Anda hanya memegang karcis bernomor. Nomor karcis itu ibarat session id yang disimpan di cookie pada browser Anda, sementara isi loker ibarat data session yang tersimpan di server. Anda tidak membawa-bawa seluruh barang; Anda cukup membawa nomornya, dan gedung yang menyimpan isinya. Untuk memahami cookie lebih dalam, Anda bisa membaca artikel kami tentang apa itu cookies dan cara kerjanya.
Ilustrasi perbandingan Session dan Cookie pada server dan browser.
Berikut perbandingan ringkasnya:
| Aspek | Session | Cookie |
|---|---|---|
| Lokasi penyimpanan | Di sisi server | Di sisi browser pengguna |
| Isi yang disimpan | Data pengguna (login, keranjang, dll.) | Umumnya hanya session id atau data kecil |
| Kapasitas | Relatif besar (tergantung server) | Terbatas, sekitar 4 KB per cookie |
| Masa berlaku | Sementara, berakhir saat logout atau timeout | Bisa sementara atau bertahan lama (persistent) |
| Keamanan relatif | Lebih aman karena data ada di server | Lebih rentan karena tersimpan di perangkat |
Dengan kata lain, cookie sering menjadi "kurir" yang membawa session id, sementara session menyimpan isi datanya di tempat yang lebih aman. Keduanya bekerja bersama, bukan saling menggantikan.
Fungsi dan Contoh Penggunaan Session
Session dipakai di hampir semua website modern yang punya interaksi pengguna. Beberapa fungsi utamanya:
- Menjaga status login: Setelah Anda memasukkan kata sandi dengan benar, session menyimpan bahwa Anda sudah terverifikasi, sehingga Anda tidak perlu login ulang di tiap halaman.
- Menyimpan keranjang belanja: Pada toko online, barang yang Anda pilih disimpan dalam session sampai Anda menyelesaikan pembayaran atau meninggalkan situs.
- Mengingat preferensi sementara: Pilihan bahasa, mata uang, atau tampilan mode gelap bisa disimpan selama kunjungan berlangsung.
- Menangani formulir bertahap: Pada pendaftaran yang terdiri dari beberapa langkah, session menyimpan isian di langkah sebelumnya agar tidak hilang saat pindah ke langkah berikutnya.
- Menampilkan pesan sekali tayang: Notifikasi seperti "Data berhasil disimpan" yang muncul sekali lalu hilang biasanya juga memanfaatkan session.
Benang merahnya, session berguna setiap kali sebuah website perlu mengingat sesuatu tentang Anda dalam rentang satu kunjungan.
Session di Dunia Pemrograman: Contoh di PHP
Bagi Anda yang mulai belajar membuat website, konsep session akan sering ditemui saat menulis kode. Sebagai gambaran, mari lihat bagaimana session ditangani di bahasa pemrograman PHP, salah satu bahasa yang paling banyak dipakai untuk web.
Sebelum memakai session, kita perlu mengaktifkannya lebih dulu di awal skrip:
<?php
session_start();
// Menyimpan data ke dalam session
$_SESSION['nama'] = 'Andi';
$_SESSION['role'] = 'admin';
?>Fungsi session_start() memerintahkan PHP untuk memulai atau melanjutkan session, sementara $_SESSION adalah variabel khusus tempat kita menyimpan dan membaca data. Pada halaman lain, selama session_start() dipanggil, kita bisa langsung membaca data tadi:
<?php
session_start();
echo 'Selamat datang, ' . $_SESSION['nama'];
?>Ketika pengguna logout, data session sebaiknya dibersihkan agar tidak tersisa. Perintah session_destroy() dipakai untuk menghapus seluruh isi session yang sedang berjalan. Pola serupa (memulai, menyimpan, membaca, menghapus) juga berlaku di bahasa dan framework lain, meski nama fungsinya berbeda-beda.
Session di Web Analytics: Makna yang Berbeda
Selain di dunia pemrograman, istilah session juga muncul di alat analitik seperti Google Analytics, dan maknanya sedikit berbeda. Di sini, session berarti satu rentang kunjungan seorang pengguna di website Anda, mulai dari halaman pertama yang dibuka sampai ia pergi atau tidak aktif dalam durasi tertentu.
Google Analytics secara bawaan mengakhiri sebuah session setelah pengguna diam selama 30 menit. Jika seseorang membuka website, menutup tab, lalu kembali dua jam kemudian, itu akan dihitung sebagai dua session berbeda. Metrik ini penting bagi pemilik website dan praktisi SEO, karena jumlah session menggambarkan seberapa sering situs dikunjungi dalam satu periode.
Jadi, meski ejaannya sama, session dalam analitik lebih menekankan pada durasi dan jumlah kunjungan, bukan pada penyimpanan data teknis di server seperti pembahasan sebelumnya.
Hal yang Perlu Anda Pertimbangkan: Keamanan dan Batas Session
Karena session id adalah kunci yang menentukan siapa Anda di mata server, ia menjadi sasaran menarik bagi pihak jahat. Ada beberapa hal yang perlu diperhatikan.
Session hijacking: Jika seseorang berhasil mencuri session id Anda, misalnya lewat koneksi yang tidak terenkripsi, ia bisa menyamar sebagai Anda tanpa perlu tahu kata sandi. Inilah kenapa website yang menangani data sensitif wajib memakai HTTPS agar lalu lintas datanya terenkripsi. Pemasangan sertifikat SSL adalah langkah dasar untuk melindungi perjalanan session id ini.
Batas waktu session (timeout): Session yang dibiarkan hidup selamanya berisiko. Karena itu server umumnya menghapus session setelah pengguna tidak aktif dalam durasi tertentu. Ini menjelaskan kenapa Anda kadang tiba-tiba diminta login ulang setelah lama meninggalkan halaman perbankan.
Perlindungan cookie: Cookie pembawa session id sebaiknya diberi atribut keamanan seperti HttpOnly, agar tidak bisa dibaca oleh skrip berbahaya, dan Secure, agar hanya dikirim lewat koneksi terenkripsi.
Beban server: Karena data session disimpan di server, jumlah pengguna yang sangat banyak dalam waktu bersamaan akan menambah beban memori server. Pada aplikasi berskala besar, hal ini perlu diperhitungkan matang-matang, dan sering diatasi dengan penyimpanan session khusus yang terpisah.
Sharing Session dan Makna Lain "Session"
Di luar konteks teknologi, Anda mungkin lebih sering mendengar kata "session" pada frasa seperti sharing session. Dalam pemakaian sehari-hari, sharing session berarti sesi berbagi pengetahuan atau pengalaman, biasanya dalam bentuk pertemuan santai antar-rekan kerja atau komunitas. Maknanya tidak berhubungan dengan penyimpanan data di server.
Klarifikasi ini penting supaya Anda tidak keliru. Ketika membaca istilah session dalam dokumentasi teknis, hosting, atau pemrograman, hampir pasti yang dimaksud adalah session web seperti yang kita bahas panjang lebar di atas, bukan sesi berbagi ala rapat.
FAQ Seputar Session
Apakah session sama dengan cookie? Tidak. Session menyimpan data di server, sedangkan cookie menyimpan data kecil (sering kali hanya session id) di browser. Keduanya bekerja sama, bukan menggantikan.
Berapa lama session bertahan? Tergantung pengaturan website. Session umumnya berakhir saat Anda logout, menutup browser, atau setelah tidak aktif dalam durasi tertentu, misalnya 30 menit.
Apa itu session id? Session id adalah kode unik dan acak yang dipakai server untuk membedakan satu pengguna dari pengguna lain, sekaligus menjadi penghubung ke data session yang tersimpan.
Apakah session aman?
Session tergolong aman karena datanya ada di server, tetapi session id-nya tetap perlu dilindungi. Penggunaan HTTPS serta atribut cookie HttpOnly dan Secure sangat membantu.
Kesimpulan
Session adalah cara website mengatasi sifat HTTP yang pelupa, sehingga ia bisa mengingat siapa Anda di sepanjang satu kunjungan. Mekanismenya bertumpu pada session id yang berpindah antara browser dan server, sementara data pentingnya tetap tersimpan aman di sisi server. Berbeda dengan cookie yang menyimpan data kecil di perangkat Anda, session menyimpan data yang lebih besar di server, dan keduanya justru bekerja berdampingan.
Memahami session akan sangat membantu, baik Anda sekadar pengguna yang ingin tahu cara kerja website, maupun calon developer yang sedang membangun aplikasi. Yang tidak kalah penting, perhatikan sisi keamanannya, terutama penggunaan HTTPS dan pengaturan timeout, agar kenyamanan mengingat pengguna tidak berubah menjadi celah keamanan. Semoga artikel ini membantu.




