التخزين من جانب العميل ضروري لتطبيقات الويب. قد لا يكون مضادًا للرصاص مثل التخزين من جانب الخادم ، ولكن بدونه ، لن تتمكن تطبيقات الويب من تنفيذ العديد من الميزات الحديثة. تعتمد جميع أنواع الميزات على التخزين من جانب العميل ، من الجلسات في الألعاب إلى عربات التسوق على مواقع التجارة الإلكترونية.

يمكّن التخزين من جانب العميل أيضًا تطبيقات الويب من تنفيذ بنية تتمحور حول الخصوصية. يمكنك استخدامه لضمان عدم خروج البيانات الحساسة أبدًا من جهاز المستخدم.

ما هو التخزين من جانب العميل؟

في تطوير الويب ، يشير التخزين من جانب العميل إلى الطرق المختلفة التي يمكن لمتصفحات الويب من خلالها تخزين البيانات. يمكن للتطبيق بعد ذلك استخدام هذه البيانات لتوفير وظائف للمستخدمين. يعد التخزين من جانب العميل أمرًا بالغ الأهمية لعدة أسباب:

  • يمكن الوصول إلى البيانات المخزنة على العميل بشكل أسرع ، ويمكن لتطبيقك الوصول إليها بدون الإنترنت.
  • يسهل التخزين من جانب العميل على تطبيقك تذكر تفضيلات كل مستخدم.
  • يسهل تخزين بعض البيانات بشكل دائم على العميل حماية خصوصية المستخدم.
  • يعد تخزين جميع بيانات التطبيق على الخادم مكلفًا ، خاصة على النطاقات الكبيرة.
instagram viewer

هناك عدة أشكال مختلفة للتخزين من جانب العميل يمكنك استخدامها في تطبيقات الويب الخاصة بك.

بسكويت

ملف تعريف ارتباط المتصفح هو جزء من بيانات المفتاح / القيمة المخزنة كسلسلة على جهاز الكمبيوتر الخاص بك. ترسل المتصفحات جميع ملفات تعريف الارتباط الخاصة بموقع معين إلى خادم الموقع عند كل طلب. كانت ملفات تعريف الارتباط هي النوع الأول (والوحيد لفترة من الوقت) من التخزين من جانب العميل.

لا يوجد حد رسمي لحجم ملف تعريف الارتباط ، ولكن المتصفحات الفردية تضع قيودًا متفاوتة على حجم وعدد ملفات تعريف الارتباط التي يمكنك تعيينها. ال RFC 6265 القسم 6.1 ينص على الحد الأدنى التالي من إمكانيات ملفات تعريف الارتباط (وكلاء المستخدم) التي يجب أن توفرها متصفحات:

عمليات التنفيذ العملية لوكيل المستخدم لها حدود على عدد وحجم ملفات تعريف الارتباط التي يمكنهم تخزينها. يجب أن يوفر وكلاء المستخدم للاستخدام العام كلًا من الحد الأدنى من الإمكانات التالية:

  • 4096 بايت على الأقل لكل ملف تعريف ارتباط (وفقًا لمجموع طول اسم ملف تعريف الارتباط وقيمته وسماته).
  • ما لا يقل عن 50 ملف تعريف ارتباط لكل مجال.
  • ما لا يقل عن 3000 ملف تعريف ارتباط.

يمكن أن تظل ملفات تعريف الارتباط على المتصفح لفترات زمنية متفاوتة. تنتهي صلاحية بعضها في نهاية جلسة الصفحة ، والبعض الآخر له تواريخ انتهاء صلاحية عشوائية يمكن أن تمتد لأشهر في المستقبل.

تنشئ المتصفحات جلسة صفحة عند فتح علامة تبويب جديدة ، وتنهيها عند إغلاق علامة التبويب أو المتصفح. إذا قمت بإعادة تحميل الصفحة أو تحديثها ، فلن ينهي المتصفح جلسة الصفحة.

حالات الاستخدام لملفات تعريف الارتباط

تعد ملفات تعريف الارتباط هي الأنسب لتخزين أجزاء صغيرة من البيانات التي يحتاج الخادم في كثير من الأحيان لقراءتها أو تعديلها. لماذا ا؟

  • يتم إرفاق ملفات تعريف الارتباط تلقائيًا بجميع طلبات الشبكة
  • يمكن لملفات تعريف الارتباط تخزين كميات صغيرة فقط من بيانات السلسلة.

يمكنك استخدام ملفات تعريف الارتباط لتحديد المستخدم (مثل معرف الجلسة) ، أو تسجيل زيارة الصفحة لأغراض وضع إشارة مرجعية ، أو تخزين الدرجة العالية للعبة.

التخزين المحلي

مثل ملف تعريف الارتباط ، فإن localStorage هو مخزن مفتاح / قيمة يخزن بيانات السلسلة. بينما يتشابه نوعا التخزين ، يختلف التخزين المحلي وملفات تعريف الارتباط بعدة طرق:

  • يعتمد LocalStorage على JavaScript.
  • البيانات الموجودة في localStorage موجودة أساسًا على المتصفح. عليك أن ترسله عن عمد إلى الخادم ، بدلاً من أن يرسله المتصفح عند كل طلب.
  • LocalStorage ليس له تاريخ انتهاء الصلاحية. يستمر على العميل حتى يقوم المطور بحذفه باستخدام JavaScript أو يمسح المستخدم تخزين المتصفح الخاص به.
  • يحتوي LocalStorage على سعة تخزين أكبر بكثير. ال مواصفات WHATWG لا يحدد حدًا صارمًا ولكن وفقًا لـ ويكيبيديا، الحد الأدنى لحجم التخزين المحلي بين المتصفحات الرئيسية هو 5 ميجابايت:

تقصر المتصفحات ملفات تعريف الارتباط على 4 كيلوبايت. يوفر التخزين على الويب سعة تخزين أكبر بكثير:

  • يسمح Opera 10.50+ بـ 5 ميغابايت
  • يسمح Safari 8 بـ 5 ميغابايت
  • يسمح Firefox 34 بـ 10 ميغابايت
  • يسمح Google Chrome بـ 10 ميغابايت لكل مصدر
  • يسمح Internet Explorer بـ 10 ميغابايت لكل مساحة تخزين

حالات الاستخدام لـ LocalStorage

يعد LocalStorage مثاليًا لتخزين كمية كبيرة من البيانات التي نادرًا ما يحتاج الخادم إلى الرجوع إليها. قد تكون هذه إعدادات مستخدم التطبيق أو تفاصيل تكوين السمة أو البيانات الموجودة في نموذج تم ملؤه مؤخرًا. هذا لأن localStorage لديه حد تخزين أكبر بكثير من ملفات تعريف الارتباط ، ولكن عليك بذل جهد إضافي لإرسال بياناته إلى الخادم.

إذا قمت بتخزين البيانات على هيئة JSON ، فيمكنك تخزين البيانات المعقدة بشكل معقول باستخدام localStorage ، على الرغم من أنه يمكن تخزين السلاسل فقط.

LocalStorage عرضة لـ هجمات XSS، لذلك يجب ألا تخزن بيانات العميل الحساسة فيه.

جلسة التخزين

SessionStorage هو مخزن مفتاح / قيمة يعمل تقريبا نفس localStorage، باستثناء شيء واحد. تستمر البيانات المخزنة فقط طوال مدة جلسة الصفحة.

حالات الاستخدام لـ SessionStorage

يمكنك استخدام SessionStorage لتخزين نفس نوع البيانات مثل localStorage ، ولكن فقط عندما لا تحتاج البيانات إلى الاستمرار بعد جلسة الصفحة.

مفهرسة ديسيبل

IndexedDB هي واجهة برمجة تطبيقات متصفح قوية لتخزين كميات كبيرة من البيانات المنظمة. إنها قاعدة بيانات معاملات ، وجوه المنحى تخزن البيانات في أزواج مفتاح / قيمة.

إذا كنت تتعامل مع كميات أصغر من البيانات ، فإن localStorage / sessionStorage هو الخيار الأفضل والأسهل. لسوء الحظ ، فهي مقيدة بسعة التخزين الخاصة بها وحقيقة أنه لا يمكنها تخزين بيانات السلسلة إلا. لا يسمح IndexedDB بتخزين أنواع مختلفة من البيانات بما في ذلك الملفات / البيانات الثنائية فحسب ، بل يمكنه أيضًا تخزين المزيد من البيانات. تُنشئ IndexedDB أيضًا فهارس لمحتوياتها للسماح بالبحث السريع في قاعدة البيانات.

حالات الاستخدام لقاعدة بيانات مفهرسة

تعد IndexedDB أساسًا قاعدة بيانات NoSQL في المتصفح ، ويمكنها تخزين كميات كبيرة جدًا من البيانات. أي حالة استخدام تتطلب تخزين أكثر من 10 ميغا بايت من البيانات تكون مناسبة لـ IndexedDB.

على عكس الأشكال الأخرى لتخزين المستعرض ، فإن IndexedDB لا يقتصر على تخزين السلاسل. يمكن لـ IndexedDB تخزين البيانات من جميع أنواع JavaScript القياسية. إذا قمت بإنشاء تطبيق ويب للعمل بشكل أساسي في وضع عدم الاتصال ، فيمكنك استخدام IndexedDB لتخزين جميع بيانات التطبيق.

التخزين من جانب العميل مرن وقوي

يشير مصطلح التخزين من جانب العميل إلى تخزين بيانات التطبيق في المتصفح. يعد التخزين من جانب العميل ضروريًا لتشغيل معظم تطبيقات الويب الحديثة. هناك أنواع مختلفة من التخزين من جانب العميل: ملفات تعريف الارتباط و local / sessionStorage و IndexedDB.

جميع أنواع تخزين المتصفح لها حدود متفاوتة على سعتها ونوع البيانات التي يمكن تخزينها. ملفات تعريف الارتباط هي النوع الأكثر محدودية ، والتخزين المحلي / جلسة التخزين هو الأكثر ملاءمة ، وقاعدة البيانات المفهرسة هي الأقوى.