Kako postaviti kolačiće u pretraživaču?
sobes.tech АИ
Одговор од АИ
Установити бисквитку у прегледачу може на неколико начина.
-
Преко HTTP заглавља
Set-Cookieса сервера. Ово је главна метода за постављање бисквитки, која се одвија на страни сервера. Сервер шаље прегледачу заглављеSet-Cookie, које instructs прегледач да сачува одређен пар кључ-врједност.Пример HTTP одговора са сервера:
HTTP/1.1 200 OK Content-Type: text/html Set-Cookie: username=johndoe; Expires=Thu, 21 Dec 2023 12:00:00 GMT; Path=/; Secure; HttpOnly Set-Cookie: settings=theme=dark&lang=en; Path=/Параметри
Set-Cookieзаглавља:name=value: Име и вредност бисквитке. Обавезно.Expires=<датум>: Датум и време истека бисквитке. Ако није наведен, бисквитка је сесијска и брише се при затварању прегледача. Формат датума је RFC 1123.Max-Age=<секунди>: Максимално време трајања бисквитке у секундима. Има приоритет надExpires.Domain=<домен>: Домену на који је бисквитка доступна. По подразумевану вредност - тренутни домен (али не и поддомени).Path=<путања>: Путања на серверу, за коју је бисквитка доступна. По подразумеваној вредности - коријенска путња/.Secure: Флаг који указује да бисквитка треба да се шаље само преко HTTPS.HttpOnly: Флаг који указује да бисквитка није доступна преко JavaScript-аdocument.cookie. Штити од XSS напада.SameSite=<режим>: Управља слањем бисквитки при крос-сайтовским захтевима. Могуће вредности:Strict,Lax(подразумевано),None.
-
Преко JavaScript-а на страни клијента. Помоћу објекта
document.cookieможе се читати, записивати и брисати бисквитке.Запис бисквитке:
// Постављање једноставне бисквитке document.cookie = "username=johndoe"; // Постављање бисквитке са `expires`, `path`, `secure` и `SameSite=Lax` const expiryDate = new Date(); expiryDate.setTime(expiryDate.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30 дана document.cookie = `token=abcdef123456; expires=${expiryDate.toUTCString()}; path=/; secure; SameSite=Lax`;Читање бисквитке:
// `document.cookie` враћа низ свих доступних бисквитки у формату "key1=value1; key2=value2; ..." console.log(document.cookie);Брисање бисквитке: За брисање бисквитке потребно је поставити њену датум истека у прошлост.
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; // поставити `expires` у прошлостВажно је приликом брисања навести исте параметре
pathиdomain(ако су били постављени), као и при креирању.SameSiteтакође мора да се поклапа за исправно брисање. -
Помоћу спољашњих JavaScript библиотека. Постоје библиотеке које олакшавају рад са бисквиткама (нпр.
js-cookie). Оне пружају једноставније API за постављање, читање и брисање бисквитки.Пример са
js-cookie:// Укључивање библиотеке // <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script> // Постављање бисквитке Cookies.set('username', 'johndoe'); // Постављање бисквитке са опцијама Cookies.set('token', 'abcdef123456', { expires: 30, path: '/', secure: true, sameSite: 'Lax' }); // expires у данима // Читање бисквитке const username = Cookies.get('username'); // Враћа 'johndoe' или undefined const allCookies = Cookies.get(); // Враћа објекат са свим бисквиткама // Брисање бисквитке Cookies.remove('username'); Cookies.remove('token', { path: '/' }); // Навести пут, ако је био при постављању