Junior
განმარტეთ cookies, sessionStorage და localStorage შორის განსხვავება.
sobes.tech AI
პასუხი AI-სგან
| მექანიზმი | ზომა (დაახლოებით) | სიცოცხლის ხანგრძლივობა | წვდომა | გადაეცემა სერვერს | გამოყენება |
|---|---|---|---|---|---|
| Cookies | 4 KB | ვადის ხანგრძლივობა, რომელიც სერვერმა ან ბრაუზერმა განსაზღვრა | მიმდინარე დოკუმენტი და ქვედომენები (კონფიგურაციის მიხედვით) | ყოველ HTTP მოთხოვნასთან | ავტორიზაცია, თვალთვალი, მომხმარებლის პერსონალიზებული პარამეტრები |
| localStorage | 5-10 MB | უსასრულო (მიუხედავად იმისა, რომ მომხმარებელმა წაშალა) | მხოლოდ მიმდინარე origin (პროტოკოლი, დომენი, პორტი) | არა | მომხმარებლის პარამეტრების შენახვა, აპლიკაციის მდგომარეობის მონაცემები |
| sessionStorage | 5-10 MB | ბრაუზერის ჩანართის ან ფანჯრის დახურვამდე | მხოლოდ მიმდინარე origin (პროტოკოლი, დომენი, პორტი) | არა | მონაცემების შენახვა ერთ სესიაში მომხმარებლისთვის |
Cookies:
- იგზავნება ყოველ HTTP მოთხოვნასთან სერვერზე, რაც შეიძლება გაზარდოს ტრეფიკი.
- ძირითადი დანიშნულება: მომხმარებლის იდენტიფიკაცია (სესიის კუქი), უპირატესობების მეხსიერება, მომხმარებლის მოქმედებების თვალთვალი.
- ხელმისაწვდომია როგორც კლიენტის (JavaScript), ასევე სერვერის მხრიდან.
- შეიძლება იყოს შეზღუდული დომენით და გზით.
- ითვლება ნაკლებად უსაფრთხოდ მგრძნობიარე მონაცემების შენახვისთვის, რადგან ავტომატურად იგზავნება სერვერზე.
localStorage:
- მონაცემები ინახება მომხმარებლის ბრაუზერში.
- გამოიყენება მუდმივი შენახვისთვის, რომელიც არ საჭიროებს ყოველ მოთხოვნასთან სერვერზე გაგზავნას.
- აქვს მარტივი JavaScript API.
- მონაცემები ინახება წყვილ-კრებულის სახით.
- სხვა origin-ებიდან მიუწვდომელია.
// მნიშვნელობის დაყენება
localStorage.setItem('username', 'john.doe');
// მნიშვნელობის მიღება
let username = localStorage.getItem('username');
// მნიშვნელობის წაშლა
localStorage.removeItem('username');
// მთლიანი localStorage-ის გასუფთავება
localStorage.clear();
sessionStorage:
- მსგავსია localStorage-ის, მაგრამ მონაცემები ინახება მხოლოდ მიმდინარე ჩანართის ან ფანჯრის დახურვამდე.
- იდეალურია დროებითი მონაცემების შენახვისთვის, რომლებიც დაკავშირებულია მიმდინარე სესიისთან (მაგ., ფორმის მონაცემები, ონლაინ მაღაზიის კალათა).
- ასევე აქვს მარტივი JavaScript API, რომელიც მსგავსია localStorage-ის.
- მონაცემები ხელმისაწვდომია მხოლოდ მიმდინარე origin-დან.
// მნიშვნელობის დაყენება
sessionStorage.setItem('sessionId', 'abc123');
// მნიშვნელობის მიღება
let sessionId = sessionStorage.getItem('sessionId');
// მნიშვნელობის წაშლა
sessionStorage.removeItem('sessionId');
// მთლიანი sessionStorage-ის გასუფთავება
sessionStorage.clear();