Menu Close

Session dan Cookie

Pada dasarnya, suatu request yang dilakukan user melalui port HTTP tidak diketahui identitasnya (independent), hal ini menjadi penting ketika server harus mengetahui user manakah yang melakukan suatu request terhadap layanan (service) tersebut. Bayangkan jika dalam satu waktu ada ratusan bahkan ribuan request ke server, apa yang akan terjadi?

Untuk mengetahui konsep stateless, kita harus fahami dulu stateful. Kita anggap terdapat suatu kondisi dimana ada “0” dan “1” atau “Yes” dan “No” atau sebaliknya. Maka ketika perubahan yang terjadi pada salah satu kondisi tersebut, kita anggap itu sebagai state.

Stateful

Stateful artinya kondisi dimana system menyimpan identitas user (biasanya di basis data) pada waktu tertentu (misal proses login) sehingga memiliki  kondisi dengan nilai true.

Kelebihan

  1. Pesan request lebih pendek.
  2. Performanya lebih baik.
  3. Memungkinkan Read ahead.
  4. Dimungkinkan (untuk penulisan) Penguncian file.
  5. Dimungkinkan pemberitahuan yang diprakarsai oleh server.

Kekurangan

  1. Lebih kompleks daripada stateless
  2. memerlukan lebih banyak memori untuk melacak koneksi aktif
  3. Lebih sulit dikelola daripada stateless
  4. Beberapa protokol tidak dapat diinspeksi dari TCP dan IP

Stateless

Stateless kebalikkan dari stateful, jika stateful memerlukan sesi identitas user pada saat tertentu, maka pada stateless tidak. User dapat menggunakan resource yang ada pada server tanpa harus menyimpan sesi setiap waktu. Representational State Transfer (REST) API merupakan stateless service yang sangat popular dan banyak dikembangkan untuk berbagai macam aplikasi, khususnya web. Contoh: Twitter API

Kelebihan

  1. Mengurangi penggunaan memori
  2. Lebih mudah untuk mendukung layanan server
  3. Mengurangi masalah kedaluwarsa session
  4. Keterkaitan URL lebih mudah

Kekurangan

  1. Melibatkan Secrete Key
  2. Tidak dapat mengelola klien dari server
  3. Tidak dapat mendorong Pesan ke klien (Mengidentifikasi klien dari server)
  4. Crypto-algo dapat ditinggalkan
  5. Overhead Data
  6. Rumit untuk difahmi

Contoh Penerapan

Kesimpulan

CookieSession
Cookie adalah file sisi klien yang berisi informasi penggunaSesi adalah data di sisi server yang berisi informasi pengguna
Cookie bisa berakhir tergantung pada masa pakai yang ditetapkanSesi berakhir ketika pengguna menutup browsernya
Anda tidak perlu memulai cookie karena disimpan di mesin lokal AndaDi PHP, sebelum menggunakan $_SESSION, Anda harus menulis session_start(); Begitu juga dengan bahasa lainnya
Ukuran cookie maksimum resmi adalah 4KBDalam sesi Anda dapat menyimpan data sebanyak yang Anda suka. Satu-satunya batasan yang dapat Anda capai adalah memori maksimum yang dapat digunakan skrip pada satu waktu, yaitu 128MB secara default
Cookie tidak bergantung pada SesiSesi bergantung pada Cookie
Tidak ada fungsi bernama unsetcookie()Sesi_hancurkan(); digunakan untuk menghancurkan semua data yang terdaftar atau untuk membatalkan beberapa

Referensi

  • Robin Nixon, Learning PHP, MySQL, JavaScript, CSS & HTML5
  • https://nordicapis.com/defining-stateful-vs-stateless-web-services/
  • https://www.xenonstack.com/insights/stateful-and-stateless-applications/
  • https://www.w3schools.com/php/php_sessions.asp
  • https://www.w3schools.com/php/php_cookies.asp
  • https://github.com/malasngoding/login-multi-user-level-dengan-php-dan-mysqli
  • https://www.guru99.com/difference-between-cookie-session.html

Leave a Reply

Your email address will not be published. Required fields are marked *