Sobes.tech
Junior

გთხოვთ, ახსნათ cookies, sessionStorage და localStorage შორის განსხვავება.

sobes.tech AI

პასუხი AI-სგან

Cookies, sessionStorage და localStorage არის ვებ საცავების მექანიზმები, რომლებიც განსხვავდებიან დანიშნულებით, სიცოცხლის ხანგრძლივობით და შენახული მონაცემების მოცულობით.

  • Cookies: მცირე მონაცემთა ფრაგმენტები, რომლებიც იგზავნება ვებ სერვერიდან და ინახება მომხმარებლის კომპიუტერში ვებ ბრაუზერის საშუალებით. იგზავნება ყოველი შემდეგი მოთხოვნით იმავე სერვერისთვის. გამოიყენება ავტორიზაციის, მომხმარებლის პრეფერენციების შენახვის, ყუთის მდგომარეობის თვალთვალისთვის.

    • ცხოვრების ხანგრძლივობა: განსაზღვრულია შექმნის დროს (შეიძლება იყოს სესიის ან გარკვეული ვადით).
    • მოცულობა: შეზღუდული, ჩვეულებრივ რამდენიმე კილობაიტია (დაახლოებით 4 KB).
  • sessionStorage: ინახავს მონაცემებს მხოლოდ ერთ სესშიაზე (გახსნილი ტაბი ან ფანჯარა). მონაცემები იშლება ტაბის ან ფანჯრის დახურვისას.

    • ცხოვრების ხანგრძლივობა: ტაბის ან ფანჯრის დახურვამდე.
    • მოცულობა: მნიშვნელოვნად მეტი, ვიდრე cookies (საშუალოდ რამდენიმე მეგაბაიტი).
  • localStorage: ინახავს მონაცემებს უქმნელად, სანამ მომხმარებელი ან სქრიპტი არ წაშლის მათ. ხელმისაწვდომია ყველა ტაბსა და ფანჯარაში ერთ დომენზე.

    • ცხოვრების ხანგრძლივობა: მუდმივი (მიუხედავად იმისა, რომ აშკარად წაშლილია).
    • მოცულობა: მნიშვნელოვნად მეტი, ვიდრე cookies (საშუალოდ რამდენიმე მეგაბაიტი).

აქ არის მოკლე შედარება:

მექანიზმი სიცოცხლის ხანგრძლივობა ხელმისაწვდომობა სერვერზე გადაგზავნა მოცულობა (საშუალო) დანიშნულება
Cookies სესიის ან ვადის ამოწურვისთანავე HTTP სათაურებით დიახ ~4 KB ავტორიზაცია, თვალთვალი, პრეფერენციები
sessionStorage გახსნილი ტაბის ან ფანჯრის დროს JS API-ით არა ~5-10 MB დროებითი სესიის მონაცემების შენახვა
localStorage მუდმივი (მიუხედავად წაშლის) JS API-ით არა ~5-10 MB ხანგრძლივი მონაცემების შენახვა

JavaScript API-ის გამოყენების მაგალითები:

// Cookies (ხელმისაწვდომია document.cookie-ით, საჭიროებს ხელით ანალიზსა და სერილიზაციას)
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";

// sessionStorage
sessionStorage.setItem('id', '123');
let userId = sessionStorage.getItem('id');
sessionStorage.removeItem('id');

// localStorage
localStorage.setItem('theme', 'dark');
let userTheme = localStorage.getItem('theme');
localStorage.removeItem('theme');
localStorage.clear(); // წმენდს ყველა მონაცემს localStorage-ში