لما بنشتغل على تطبيقات الويب، أحيانًا بنحتاج نخزن بيانات في المتصفح، سواء لفترة قصيرة أو طويلة.
هنا بييجي دور 3 تقنيات أساسية: Local Storage، Cookies، و Session Storage. طيب إيه الفرق بينهم وامتى نستخدم كل واحد فيهم؟ خلينا نبسط الموضوع:
📌 الـ Local Storage
الـLocal Storage موجود علشان يخزن بيانات في المتصفح بشكل دائم (يعني لو قفلت الـ Browser وفتحته تاني البيانات هتفضل موجودة).
من مميزاته إنه بيشتغل بشكل Synchronous (يعني شغل مباشر ومش محتاج وعود Promises)، بس العيب إنه مش آمن لو بتخزن فيه بيانات حساسة زي الـ Tokens أو الـ Passwords لأن البيانات بتكون متاحة لأي JavaScript في الموقع.
مناسب لو عاوز تخزن حاجات زي إعدادات المستخدم أو البيانات غير الحساسة وعايزها تفضل محفوظة لفترة طويلة.
📌 الـ Cookies
الـ Cookies كانت من أوائل الطرق لتخزين البيانات في المتصفح، ومميزاتها إنها بتتبعت مع كل طلب HTTP (فممكن تستخدمها في الـ Authentication، زي الـ Sessions).
سعة التخزين صغيرة جدًا وده يخليها مش مناسبة لو هتخزن بيانات كتير.
فيها ميزة كبيرة إنها بتشتغل كويس مع الـ Server Side علشان تقدر تستخدمها في الـ Sessions وتتبع المستخدم بين الصفحات.
الـ Cookies ممكن تتحكم فيها أكتر من حيث مدة الصلاحية (Expiry)، وكمان ممكن تكون مؤمنة باستخدام خاصية HttpOnly و Secure.
📌 الـ Session Storage
الـ Session Storage شبه الـ Local Storage، بس الفرق الرئيسي إنه بيخزن البيانات لغاية ما المستخدم يقفل التاب أو الـ Window بتاع المتصفح، وبعدها البيانات بتتمسح.
من مميزاته إنه مناسب لو محتاج تخزن بيانات مؤقتة تخص الجلسة الحالية بس، زي مثلًا بيانات فورم المستخدم مش هتعوزها بعد ما يقفل التاب.
📌 امتى تستخدم إيه؟
⚡️ لو بتدور على تخزين طويل المدى ومش محتاج البيانات تكون متاحة للسيرفر، استخدم Local Storage.
⚡️ لو محتاج تأمين بيانات المستخدم والتأكد إنها بتتبعت مع كل طلب للسيرفر، استخدم Cookies (خصوصًا في الـ Authentication).
⚡️ لو بتدور على تخزين مؤقت للجلسة الحالية بس (زي بيانات الـ Form أو الـ Cart في موقع تسوق)، استخدم Session Storage.
كل واحد منهم ليه سيناريوهات استخدام مختلفة، والمهم إنك تختار الأداة الصح على حسب احتياجات التطبيق بتاعك. الـ Local Storage بيديك سعة تخزين كبيرة، الـ Cookies بتديك تأمين واتصال مع الـ Server، والـ Session Storage بتساعدك في البيانات المؤقتة.
بالتوفيق يا بطل 💪🏻