اذهب إلى المحتوى

السؤال

نشر

في الإصدارات الأخيرة من إطار العمل express أصبح يجب تضمين بعض الوسائط لأستطيع استخدامها، ومنها عند الحاجة لاستخدام والتعامل مع الجلسات sessions. 

ولكن لاحظت وجود كل من cookie session و express session ولكن لا أستطيع التمييز بينهما. ماهي الفروقات التي يجب الانتباه لها؟ ومتى يجب استخدام كل منها؟

Recommended Posts

  • 0
نشر

 

يرتبط الاختلاف الأساسي بينهما بكيفية ومكان تخزين بيانات الجلسة. تستخدم جلسة ملفات تعريف الارتباط ( cookie-session) أساسا لتطبيقات الجلسة خفيفة الوزن حيث يتم تخزين بيانات الجلسة في ملف تعريف ارتباط ولكن داخل المتصفح ، بينما يخزن Express Session مجرد معرف جلسة داخل ملف تعريف ارتباط في المتصفح ، أثناء تخزين بيانات الجلسة بالكامل على الخادم. تعد جلسة ملفات تعريف الارتباط ( cookie-session) مفيدة في التطبيقات التي لا يتم فيها استخدام قاعدة بيانات في الجزء الخلفي من الموقع. ومع ذلك ، لا يمكن أن تتجاوز بيانات الجلسة حجم ملف تعريف الارتباط. في الحالات التي يتم فيها استخدام قاعدة البيانات ، فإنها تعمل مثل ذاكرة التخزين المؤقت لإيقاف عمليات البحث المتكررة لقاعدة البيانات والتي تكون باهظة الثمن.

  • 1
نشر

يخزن Express-session معرف الجلسة في ملف تعريف الارتباط بينما توجد بيانات الجلسة الفعلية في مخزن الجلسة الخلفية مثل connect-redis ، حيث تتيح لك جلسة ملف تعريف الارتباط cookie-session تخزين بيانات الجلسة في ملف تعريف ارتباط (جانب العميل). الاقتباس التالي هو مقتطف من وثائق جلسة ملفات تعريف الارتباط cookie-session:
"يمكن تخزين جلسة المستخدم بطريقتين رئيسيتين مع ملفات تعريف الارتباط: على الخادم أو على العميل. تخزن هذه الوحدة بيانات الجلسة على العميل داخل ملف تعريف ارتباط ، بينما تخزن وحدة مثل الجلسة السريعة فقط معرف جلسة على العميل داخل ملف تعريف ارتباط وتخزن بيانات الجلسة على الخادم ، عادةً في قاعدة بيانات.". الميزة الرئيسية لاستخدام ملف تعريف الارتباط  cookie-session هي عندما يكون لديك تطبيق node.js مجمع ، فلن تضطر إلى الاعتماد على مشاركة بيانات الجلسة بين العمليات المتشعبة.

  • 1
نشر

الحاجة الأساسية التي تلبيها هذه الحزم هي تمييز طلبات المستخدم الواحد من الطلبات القادمة وتخزين واسترداد معلومات عنه.

ما الفرق بين الحزمتين ؟

  •  express-session (بيانات الجلسة بطرف الخادم) يقوم بتخزين البيانات على الخادم (يوجد عدة تضمينات للمخازن حسب نوع المخزن)، ويمرر للعميل فقط معرف يستخدمه لاسترداد معلومات العميل في كل مرة يقوم فيها بطلب
  •   cookie-session  (بيانات الجلسة بطرف العميل) يقوم بارسال البيانات كاملة للصاحب الطلب ولا يتم تخزين أي بيانات على الخادم.

متى تستخدم كل منهما ؟

  • cookie-session إذا كنت لا تريد متابعة وتطوير مكان التخزين بيانات الجلسة 
  • cookie-session إذا كانت بيانات الجلسة خفيفة وحجمها صغير
  • cookie-session إذا كانت لديك بنية خوادم متعددة لا تشترك بمكان تخزين موحد
  • express-session خلاف ذلك أو إذا كان لديك طريقة تخزين مخصصة تفضل استخدامها لبيانات الجسلة

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...