CodeGym /Kurslar /Frontend SELF AZ /Cookie ilə iş

Cookie ilə iş

Frontend SELF AZ
Səviyyə , Dərs
Mövcuddur

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:

  1. Ad və dəyər (name=value): məlumatları saxlayan açar-dəyər cütü.
  2. Domen və yol (domain, path): cookies hansı URL-lərə və domenlərə aid olduğunu göstərir.
  3. Saxlama müddəti (expires, max-age): cookies-in nə vaxt sona çatacağını və silinəcəyini müəyyən edir.
  4. 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:

JavaScript
    
      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:

JavaScript
    
      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:

JavaScript
    
      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:

JavaScript
    
      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:

JavaScript
    
      // 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 edir
  • getCookie: verilmiş ada görə cookie dəyərini qaytarır
  • deleteCookie: verilmiş ada görə cookie silir

Nümunə:

HTML
    
      <!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ə:

JavaScript
    
      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:

  1. Avtendikasiya: cookie tez-tez istifadəçi sorğular arasında doğrulama üçün sessiya tokenlərini saxlamaq üçün istifadə olunur.
  2. İstifadəçi üstünlükləri: cookie istifadəçi parametrlərini, məsələn, interfeys dilini və ya mövzuları saxlaya bilər.
  3. İ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.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION