გთხოვთ, ახსნათ 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-ში