Junior
Kā iestatīt sīkfailus, lai tie tiktu dzēsti pēc 3 dienām?
sobes.tech AI
Atbilde no AI
Lai iestatītu "sīkfailu" ar dzēšanu pēc 3 dienām, var izmantot atribūtus expires vai max-age.
-
expires: Nosaka konkrētu datumu un laiku, kad "sīkfails" beigsies. Datums jānorāda GMT formātā.
-
max-age: Nosaka sekundžu skaitu, pēc kura "sīkfails" beigsies, sākot no tā iestatīšanas brīža. Tas ir elastīgāks un ieteicamāks veids.
JavaScript piemērs ar max-age:
// Saņemam pašreizējo laiku milisekundēs
const now = new Date().getTime();
// Aprēķinām laiku pēc 3 dienām milisekundēs
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;
// Aprēķinām beigu laiku
const expirationTime = now + threeDaysInMilliseconds;
// Izveidojam Date objektu beigu laikam
const expirationDate = new Date(expirationTime);
// Iestatām sīkfailu ar `expires` atribūtu, kas pārveidots uz GMT formātu
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();
// Vai izmantojam `max-age` (ieteicams)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;
// Papildu atribūti labākai praksei:
// secure - sīkfails tiek nosūtīts tikai caur HTTPS
// HttpOnly - sīkfails nav pieejams caur document.cookie (aizsargā no XSS)
// path - ceļš, kurā darbojas sīkfails
// domain - domēns, kurā darbojas sīkfails
// SameSite - novērš sīkfailu nosūtīšanu starp vietnēm (ieteicams: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";
Salīdzinājums expires un max-age:
| Atribūts | Apraksts | Formāts | Priekšrocības | Trūkumi |
|---|---|---|---|---|
expires |
Norāda konkrētu beigu datumu | GMT formāta datums | Saderīgs ar vecākām pārlūkprogrammām | Atkarīgs no klienta laika precizitātes |
max-age |
Norāda sekundžu skaitu līdz beigu datumam | Sekundes | Nav atkarīgs no laika precizitātes | Var nebūt pilnībā atbalstīts vecākās pārlūkprogrammās |
Tāpat "sīkfaili" var tikt iestatīti arī servera pusē, piemēram, ar Set-Cookie galveni:
Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax
Šeit Max-Age=259200 atbilst 3 dienām sekundēs (3 * 24 * 60 * 60).