Sepertinya saya tidak tahu cara membuat cookie persisten vs non-persisten. Apa perbedaannya, misalnya, pada header HTTP yang dikirim kembali?
Bagaimana cara membuat cookie persisten vs non-persisten?
Jawaban (4)
Cookie memiliki tanggal kedaluwarsa yang ditetapkan secara implisit atau eksplisit yang mengontrol berapa lama cookie tersebut bertahan (tergantung pada agen pengguna yang benar-benar menerapkannya). Cookie hanya dapat bertahan selama durasi sesi (atau bahkan lebih singkat).
Jika cookie valid, cookie tersebut akan diteruskan bersama dengan permintaan HTTP ke domain asalnya. Hanya domain yang menyetel cookie yang dapat membaca cookie tersebut (walaupun ada cara untuk mengeksploitasinya, seperti pembuatan skrip lintas situs).
Jika Anda ingin cookie kedaluwarsa pada waktu tertentu, tetapkan tanggal kedaluwarsa menggunakan bahasa sisi klien atau server pilihan Anda.
Jika Anda ingin cookie kedaluwarsa saat sesi berakhir, jangan tetapkan tanggal kedaluwarsa.
Dari RFC (penekanan dari saya):
Penyetel cookie dapat menentukan tanggal penghapusan, dalam hal ini cookie akan dihapus pada tanggal tersebut.
Jika pembuat cookie tidak menentukan tanggal, cookie akan dihapus setelah pengguna keluar dari browsernya.
Akibatnya, menentukan tanggal adalah cara untuk membuat cookie bertahan di seluruh sesi. Oleh karena itu, cookie dengan tanggal kedaluwarsa disebut persisten.
Sebagai contoh aplikasi, situs belanja dapat menggunakan cookie persisten untuk menyimpan barang yang dimasukkan pengguna ke keranjangnya. (Pada kenyataannya, cookie mungkin merujuk pada entri dalam database yang disimpan di situs belanja, bukan di komputer Anda.) Dengan cara ini, jika pengguna keluar dari browser mereka tanpa melakukan pembelian dan kembali lagi nanti, mereka masih menemukan item yang sama di keranjang sehingga mereka tidak perlu mencari barang tersebut lagi. Jika cookie ini tidak diberi tanggal kedaluwarsa, cookie tersebut akan kedaluwarsa saat browser ditutup, dan informasi tentang konten keranjang akan hilang.
max-age
?
- person Aaron Franke; 19.11.2019
max-age
: tools.ietf.org /html/rfc6265#halaman-21
- person Tim Medora; 19.11.2019
Ada dua jenis cookie di ASP.NET
Cookie persisten:
Cookie disimpan di hard disk komputer Anda. Mereka tetap berada di hard disk Anda dan dapat diakses oleh server web hingga dihapus atau kedaluwarsa.
public void SetPersistentCookies(string name, string value)
{
HttpCookie cookie = new HttpCookie(name);
cookie.Value = value;
cookie.Expires = Convert.ToDateTime(“12/12/2008″);
Response.Cookies.Add(cookie);
}
Cookie non-persisten:
Cookies hanya disimpan ketika browser web Anda sedang berjalan. Mereka hanya dapat digunakan oleh server web sampai Anda menutup browser Anda. Mereka tidak disimpan di disk Anda.
public void SetNonPersistentCookies(string name, string value)
{
HttpCookie cookie = new HttpCookie(name);
cookie.Value = value;
Response.Cookies.Add(cookie);
}
Kue sesi
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
Response.Cookies.Add(cookie);
Cookie dengan stempel waktu tertentu (.NET DateTime library)
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.Today.AddMonths(12); //or AddMinutes, or AddHours...
Response.Cookies.Add(cookie);
Cookie Persisten
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.MaxValue;
Response.Cookies.Add(cookie);
Cookie persisten memiliki tanggal kedaluwarsa yang dikeluarkan oleh server web. Pada dasarnya, cookie jenis ini disimpan di komputer Anda sehingga ketika Anda menutupnya dan memulainya kembali, cookie tersebut masih ada. Setelah tanggal kadaluwarsanya tercapai, maka dimusnahkan oleh pemiliknya.
Referensi: https://www.cookiepro.com/knowledge/what-is-a-persistent-cookie/
Jika cookie tidak berisi tanggal kedaluwarsa, maka cookie tersebut dianggap sebagai cookie sesi/non-persisten.
Jadi, pada dasarnya cookie persisten hadir dengan atribut expires
mis.
expires="Wdy, DD-Mon-YYYY HH:MM:SS GMT"