Ini Dia Bedanya Cache, Session Dan Cookie
1. Cache
Caching adalah proses menyimpan data dalam cache. Cache adalah tempat penyimpanan sementara yang berukuran relatif kecil dan memiliki waktu akses yang cepat. Kapan pun aplikasi perlu membaca data, pertama - tama aplikasi harus mencoba mengambil data dari cache. Upaya untuk mengambil data dari penyimpanan data hanya jika tidak ditemukan dalam cache. Caching mengurangi latensi dan mengurangi beban server dan juga bisa mengurangi beban database, caching dapat dilakukan pada level yang berbeda, diantaranya :
- Client Caching
Caching ada di sisi klien, seperti OS, browser, server yang bertindak sebagai klien seperti proxy terbalik.
- CDN Caching
CDN (Content Delivery Network) juga digunakan sebagai cache antara server asal dan klien. CDN digunakan untuk menyimpan file statis seperti CSS, gambar,JavaScript, video, audio dan HTML.
- Web Server Caching
Server web juga dapat menyimpan permintaan dan mengembalikan respons tanpa menghubungi server aplikasi.
- Database Caching
Secara default, database menyertakan sejumlah caching dengan pengaturan default yang dioptimalkan untuk kasus penggunaan umum.
- Application Caching
Caching aplikasi menempatkan cache antara aplikasi Anda dan penyimpanan data Anda. Cache ini pada dasarnya adalah penyimpanan nilai kunci dalam memori seperti Memcached atau Redis. Karena data disimpan dalam RAM, ini jauh lebih cepat daripada database biasa di mana data disimpan di disk Posting blog ini terutama tentang caching aplikasi.
2. Session
Sesi adalah variabel global yang disimpan di server. Setiap sesi diberi ID unik yang digunakan untuk mengambil nilai yang disimpan. Setiap kali sesi dibuat, cookie yang berisi ID sesi unik disimpan di komputer pengguna dan dikembalikan dengan setiap permintaan ke server. Jika browser klien tidak mendukung cookie, ID sesi unik akan muncul di URL. Sesi memiliki kapasitas untuk menyimpan data dalam jumlah yang relatif besar dibandingkan dengan cookie.
Sesi tidak ada dengan sendirinya. Ini memiliki siklus hidup yang sangat berbeda dari pembuatan awal hingga penghancuran akhir. Diagram berikut menunjukkan siklus hidup yang umum digunakan.
Situs web biasa dapat memulai sesi dengan pengguna saat pengguna pertama kali mengunjungi situs. Sejak saat itu, semua yang dilakukan pengguna dilakukan dalam konteks sesi yang ditetapkan. Pada titik tertentu, pengguna dapat memutuskan untuk mengautentikasi untuk mengakses fungsionalitas tambahan Setelah selesai, dia logout. Akhirnya, dia dapat memilih untuk mengakhiri sesi sepenuhnya.
Siklus hidup ini terlihat sederhana. Iblis ada dalam detailnya. Bagan di atas Mudah diperpanjang untuk menyertakan autentikasi ulang, batas waktu idle, dan batas waktu yang sulit.
Sedikit lebih rumit, tapi tidak terlalu mencolok. Idle timeout berarti bahwa pengguna logout setelah periode tidak aktif. Setiap interaksi pengguna menyetel ulang timer tidak aktif. Batas waktu yang sulit, di sisi lain, membuat pengguna logout setelah sejumlah Ini diperlukan untuk mencegah sesi berlangsung selamanya. Otentikasi ulang biasanya dilakukan sebelum operasi sensitif seperti perubahan sandi atau email. Ini mungkin sebanyak yang perlu Anda lakukan terkait dengan manajemen sesi HTTP.
1. Cookie
Cookie adalah sepotong informasi yang disimpan di sisi klien dan dikirim ke server dengan setiap permintaan dari klien. Cookie terutama digunakan untuk otentikasi dan pemeliharaan sesi.
HTTP dan HTTPS adalah protokol stateless dan tidak memiliki status untuk mempertahankan sesi pengguna. Oleh karena itu, situs webnya di HTTP atau HTTPS saja tidak dapat mempertahankan preferensi pengguna.
Cookie biasanya berisi informasi yang terkait dengan preferensi pengguna dan identitas pengguna. Oleh karena itu, melindungi cookie secara efektif berarti melindungi identitas pengguna.
Cookie dapat diamankan dengan mengatur atribut cookie atau header cookie dengan tepat. Atribut - atribut ini adalah :
- Secure
- Domain
- Path
- HTTPOnly
- Expires
- Max-Age
- SameSite