Sobes.tech
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).