Junior
Cookieslarni qanday qilib 3 kundan so'ng o'chirilishini qanday sozlash mumkin?
sobes.tech AI
AIdan javob
3 kundaning o'chirish bilan "cookie" ni sozlash uchun expires yoki max-age atributidan foydalanish mumkin.
-
expires: Aniq bir tugash sanasi va vaqti belgilaydi. Sana GMT formatida bo'lishi kerak.
-
max-age: "cookie" ning tugashidan oldin qancha sekund o'tishini belgilaydi, yaratilish vaqtidan boshlab. Bu yanada moslashuvchan va tavsiya etilgan usul.
JavaScriptda max-age bilan misol:
// Hozirgi vaqtni millisekundlarda olamiz
const now = new Date().getTime();
// 3 kun uchun millisekundlarda vaqtni hisoblaymiz
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Tugash vaqtini millisekundlarda hisoblaymiz
const expirationTime = now + threeDaysInMilliseconds;
// Tugash uchun Date ob'ektini yaratamiz
const expirationDate = new Date(expirationTime);
// GMT formatida sanani o'zgartirib, expires atributi bilan cookie ni sozlaymiz
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Yoki `max-age` ni ishlatamiz (tavsiya etiladi)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Yaxshi amaliyot uchun qo'shimcha atributlar:
// secure - cookie faqat HTTPS orqali yuboriladi
// HttpOnly - cookie document.cookie orqali kirish mumkin emas (XSSdan himoya)
// path - cookie uchun amal qilish yo'li
// domain - cookie uchun domen
// SameSite - cross-site so'rovlarida cookie yuborilishini oldini oladi (tavsiya etiladi: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
expires va max-age ni taqqoslash:
| Atribut | Tavsifi | Format | Afzalliklar | Kamchiliklar |
|---|---|---|---|---|
expires |
Aniq tugash sanasini ko'rsatadi. | GMT formatidagi sana. | Eski brauzerlar bilan mos keladi. | Mijozning aniq vaqtiga bog'liq. |
max-age |
Tugashgacha bo'lgan sekundlar sonini ko'rsatadi. | Sekundlar soni. | Mijozning vaqtiga bog'liq emas. Ko'proq moslashuvchan. Tavsiya etiladi. | Eski brauzerlar tomonidan to'liq qo'llab-quvvatlanmasligi mumkin. |
Shuningdek, "cookie" server tomonida ham o'rnatilishi mumkin, masalan, Set-Cookie sarlavhasi yordamida.
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Bu yerda, Max-Age=259200 3 kunni sekundlarda ifodalaydi (3 * 24 * 60 * 60).