ما الفرق بين ملفات تعريف الارتباط Cookies والجلسات Sessions

 

 ما الفرق بين ملفات تعريف الارتباط Cookies والجلسات Sessions




في مقال اليوم سألخص لكم فكرة ملفات تعريف الارتباط والجلسات والاختلافات بين الاثنتين.

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

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

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

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


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

تعتبر ملفات تعريف الارتباط أقل أمانًا حيث يتم تخزين البيانات كما هي دون تشفير على جهاز العميل (بشكل ملف نصي) أما في حال الجلسة فإنه يتم إصدار ما يسمى بمعرّف الجلسة Session ID لتقليل مخاطر الأمان حيث يتم إرسال معرف الجلسة ذهابًا وإيابًا بين السيرفر والعميل بدلاً من إرسال البيانات الفعلية ويتم حماية القيم أو البيانات الفعلية المخزنة لكل جلسة حيث يتم تخزينها بشكل ثنائي أو بشكل مشفر ولا يمكن فك تشفيرها إلا على السيرفر. 

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

تكون كل جلسة فريدة لكل مستخدم، ويمكن استخدام أي عدد من الجلسات في التطبيق ويتم التعرف على المستخدم بمساعدة معرّف الجلسة كما ذكرنا، وهو رقم فريد يتم حفظه داخل السيرفر.


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

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

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

جدول يوضح أهم الفروقات بين ملفات تعريف الارتباط والجلسات


وختامًا: 

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

جدول يوضح أهم الفروقات بين ملفات تعريف الارتباط والجلسات





Next Post
No Comment
Add Comment
comment url