5.1 Cookies-in Əsas Xüsusiyyətləri
Cookies — bu, istifadəçinin brauzerində saxlanılan kiçik məlumat parçalarıdır. Onlar localStorage-dan 20 il əvvəl yaranıb və bu müddət ərzində onların funksiyalarını yerinə yetirməyə kömək edib. Hələ də sessiya vəziyyəti, istifadəçi üstünlükləri, izləmə və digər məsələlərlə bağlı məlumatları saxlamaq üçün tez-tez istifadə olunurlar.
Cookies-in əsas xüsusiyyətləri:
- Ad və dəyər (name=value): məlumatları saxlayan açar-dəyər cütü.
- Domen və yol (domain, path): cookies hansı URL-lərə və domenlərə aid olduğunu göstərir.
- Saxlama müddəti (expires, max-age): cookies-in nə vaxt sona çatacağını və silinəcəyini müəyyən edir.
- Təhlükəsizlik (secure, HttpOnly): cookies-in necə və nə vaxt ötürülə biləcəyini müəyyən edir.
Cookies qurmaq
Cookies JavaScript və ya server tərəf kodu ilə qurula bilər. JavaScript-də bunun üçün document.cookie xüsusiyyəti istifadə olunur.
JavaScript ilə cookies qurmaq nümunəsi:
document.cookie = "username=JohnDoe";
Cookies üçün əlavə parametrlər:
- expires: cookies-in vaxtının bitmə tarixini göstərir. Bu tarixdən sonra cookies silinəcək.
- path: cookies-in hansı yol üçün etibarlı olduğunu müəyyən edir. Adətən cookies-i bütün sayt üçün əlçatan etmək üçün / istifadə olunur.
- domain: cookies-in hansı domen üçün etibarlı olduğunu müəyyən edir.
- secure: əgər qurulubsa, cookies yalnız HTTPS vasitəsilə ötürüləcək.
- HttpOnly: əgər qurulubsa, cookies yalnız server tərəfindən əldə edilə bilər (JavaScript ilə əlçatmaz).
Əlavə parametrlərlə cookies qurmaq nümunəsi:
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";
5.2 Cookies İdarəetmə
1. Cookies Oxuma
Cari sənədin bütün cookies-ləri bir uzun sətirdə document.cookie-də saxlanılır. Cookies dəyərini əldə etmək üçün bu sətiri parse etmək lazımdır.
Cookies oxuma nümunəsi:
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
return null;
}
// "username" cookie-sinin dəyərini almaq
const username = getCookie('username');
console.log(username); // Çap edəcək: JohnDoe
2. Cookies Yeniləmə
Cookies dəyərini yeniləmək üçün sadəcə həmin adı yeni dəyər və parametrlərlə yenidən təyin etmək kifayətdir.
Cookies yeniləmə nümunəsi:
document.cookie = "username=JaneDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";
3. Cookies Silmə
Cookies silmək üçün onun üçün müddəti keçmiş tarix təyin etmək lazımdır.
Cookies silmə nümunəsi:
// Müddəti keçmiş tarix təyin etmək
document.cookie = "username=JohnDoe; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
5.3 Cookie ilə işləmək nümunələri
İzah:
setCookie
: verilmiş ad, dəyər və ömrü (günlər ilə) olan cookie təyin edirgetCookie
: verilmiş ada görə cookie dəyərini qaytarırdeleteCookie
: verilmiş ada görə cookie silir
Nümunə:
<!DOCTYPE html>
<html>
<head>
<title>Cookie Nümunəsi</title>
</head>
<body>
<button onclick="handleSetCookie()">Cookie təyin et</button>
<button onclick="handleGetCookie()">Cookie oxu</button>
<button onclick="handleDeleteCookie()">Cookie sil</button>
<script>
function setCookie(name, value, days) {
let expires = "";
if (days) {
const date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
const nameEQ = name + "=";
const ca = document.cookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i].trim();
if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function deleteCookie(name) {
document.cookie = name + '=; Max-Age=0; path=/';
}
function handleSetCookie() {
setCookie('username', 'JohnDoe', 7);
alert('Cookie "username" üçün "JohnDoe" dəyəri 7 gün müddətinə təyin edildi');
}
function handleGetCookie() {
const cookieValue = getCookie('username');
if (cookieValue) {
alert('Cookie "username"-in dəyəri: ' + cookieValue);
} else {
alert('Cookie "username" tapılmadı');
}
}
function handleDeleteCookie() {
deleteCookie('username');
alert('Cookie "username" silindi');
}
</script>
</body>
</html>
5.4 Server tərəfində cookie-nin qurulması
HttpOnly və Secure cookie-lərlə serverdə (Node.js) işləməyi müzakirə edək.
Nümunə:
const express = require('express');
const app = express();
app.get('/setcookie', (req, res) => {
res.cookie('secureServerCookie', 'ServerJohnDoe', {
maxAge: 7 * 24 * 60 * 60 * 1000, // 7 gün
httpOnly: true,
secure: true,
sameSite: 'strict'
});
res.send('Təhlükəsiz server cookie quruldu');
});
app.get('/getcookie', (req, res) => {
const cookie = req.cookies.secureServerCookie;
res.send(`Cookie dəyəri: ${cookie}`);
});
app.listen(3000, () => {
console.log('Server 3000 portunda işləyir');
});
Cookie istifadəsinin nümunələri:
- Avtendikasiya: cookie tez-tez istifadəçi sorğular arasında doğrulama üçün sessiya tokenlərini saxlamaq üçün istifadə olunur.
- İstifadəçi üstünlükləri: cookie istifadəçi parametrlərini, məsələn, interfeys dilini və ya mövzuları saxlaya bilər.
- İstifadəçilərin izlenməsi: cookie istifadəçilərin saytdakı davranışlarını izləmək üçün analitika və məzmunun fərdiləşdirilməsi məqsədilə istifadə edilə bilər.
GO TO FULL VERSION