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

وهنا قمت بتحليل الفرق بين الجلسة وملفات تعريف الارتباط وسيتم تقييم إيجابياتها وسلبياتها بشكل شامل.
ما هي الجلسة؟
الجلسة هي متغير عام يُخزَّن على الخادم. تُخصَّص لكل جلسة مُعرِّف فريد، يُستخدم لاسترجاع القيم المُخزَّنة. عند إنشاء جلسة، يُخزَّن ملف تعريف ارتباط (cookie) يحتوي على مُعرِّف الجلسة الفريد على جهاز المستخدم، ويُعاد مع كل طلب إلى الخادم. إذا كان متصفح العميل لا يدعم ملفات تعريف الارتباط، فسيتم عرض مُعرِّف الجلسة الفريد في... URLتتمتع الجلسات بالقدرة على تخزين كميات كبيرة نسبياً من البيانات مقارنة بملفات تعريف الارتباط.
يتم حذف قيم الجلسة تلقائيًا عند إغلاق المتصفح. إذا كنت تريد تخزين القيم بشكل دائم، فيجب عليك تخزينها في ملف قاعدة بيانات.
تمامًا مثل متغير المصفوفة $_COOKIE، يتم تخزين متغيرات الجلسة في متغير المصفوفة $_SESSION. كما هو الحال مع ملفات تعريف الارتباط، يجب أن تبدأ الجلسة قبل أي علامات HTML.
لماذا ومتى يجب أن أستخدم الجلسات؟
تُستخدم الجلسات لتمرير القيم من صفحة إلى أخرى. يقومون بتخزين معلومات مهمة، مثل معرف المستخدم، بشكل أكثر أمانًا على الخادم، حيث لا يمكن للمستخدمين الضارين التلاعب بها.
يُستخدم أيضًا عندما تريد بديلًا لملفات تعريف الارتباط على المتصفحات التي لا تدعمها، وذلك لتخزين المتغيرات العامة بطريقة أكثر كفاءة وأمانًا. وهو أفضل من تمريرها في... URL أو عند التطويرping تطبيق مثل متجرping عربة تخزين مؤقتة تخزن المعلومات بسعة أكبر من 4 كيلوبايت.
إنشاء جلسة باستخدام PHP
لبدء جلسة، تحتاج إلى بدء وظيفة session_start في PHP ثم حفظ قيمك في المصفوفة الشاملة $_SESSION.
تخيل السيناريو الذي تريد فيه track معدل زيارات الصفحة. استخدام جلسة هو طريقة فعالة لهذا الغرض.
يوضح المثال التالي كيفية إنشاء القيم والوصول إليها في الجلسات:
<?php
session_start(); //start the PHP_session function
if(isset($_SESSION['page_count']))
{
$_SESSION['page_count'] += 1;
}
else
{
$_SESSION['page_count'] = 1;
}
echo 'You are visitor number ' . $_SESSION['page_count'];
?>
الإخراج:
You are visitor number 1
مميزات الجلسة
وإليكم مميزات الجلسة من وجهة نظري.
- يعزز تفاعل المستخدم من خلال الحفاظ على حالة الحوار المستمر عبر طلبات متعددة.
- يقلل من حمل الخادم عن طريق تخزين بيانات المستخدم مؤقتًا.
- يعمل على تحسين الأمان من خلال التحكم في عرض البيانات لفترات محدودة.
- يسمح بتجارب مخصصة بناءً على سلوك المستخدم وتفضيلاته.
- يُسهّل المعاملات المعقدة من خلال الاحتفاظping track من خطوات متعددة.
- يزيد من أداء موقع الويب عن طريق تقليل الحاجة إلى إعادة المصادقة.
- يدعم قابلية التوسع من خلال إدارة جلسات المستخدم بشكل فعال عبر الأنظمة الموزعة.
عيوب الجلسة
من خلال تجربتي، هذه هي عيوب استخدام الجلسات.
- يزيد من خطر اختراق البيانات إذا تم اعتراض بيانات الجلسة.
- يستهلك ذاكرة الخادم، مما قد يؤدي إلى تقليل الأداء العام للنظام.
- يمكن أن يؤدي إلى تجارب مستخدم غير متناسقة إذا تمت إدارته بشكل غير صحيح.
- يتطلب موارد خادم إضافية للحفاظ على الجلسات ومراقبتها.
- يمكن أن يؤدي انتهاء صلاحية الجلسة إلى تعطيل أنشطة المستخدم، مما يسبب الإحباط.
- عرضة لهجمات اختطاف الجلسة والتثبيت.
- قد يؤدي ذلك إلى تعقيد الامتثال للوائح الخصوصية بسبب تخزين البيانات المستمر.
ما هي الكوكيز؟
ملف تعريف الارتباط هو ملف صغير يبلغ الحد الأقصى لحجمه 4 كيلو بايت ويخزنه خادم الويب على جهاز الكمبيوتر العميل. بمجرد تعيين ملف تعريف الارتباط، تقوم جميع طلبات الصفحة التالية بإرجاع اسم ملف تعريف الارتباط وقيمته. لا يمكن قراءة ملف تعريف الارتباط إلا من المجال الذي تم إصداره منه. على سبيل المثال، مجموعة ملفات تعريف الارتباط التي تستخدم المجال www.guru99.com لا يمكن قراءتها من المجال career.guru99.com. تعرض معظم مواقع الويب على الإنترنت عناصر من مجالات أخرى، مثل الإعلانات. يمكن للنطاقات التي تخدم هذه العناصر أيضًا تعيين ملفات تعريف الارتباط الخاصة بها. تُعرف هذه باسم ملفات تعريف الارتباط الخاصة بالطرف الثالث. يمكن أن يكون ملف تعريف الارتباط الذي أنشأه المستخدم مرئيًا له فقط. لا يمكن للمستخدمين الآخرين رؤية قيمته. معظم متصفحات الانترنت لديك خيارات لتعطيل ملفات تعريف الارتباط أو ملفات تعريف ارتباط الطرف الثالث أو كليهما.
لماذا ومتى يجب أن أستخدم ملفات تعريف الارتباط؟
بروتوكول HTTP هو بروتوكول عديم الحالة؛ تسمح لنا ملفات تعريف الارتباط بـ tracتُستخدم ملفات تعريف الارتباط (الكوكيز) لمعرفة حالة التطبيق، وهي ملفات صغيرة تُخزّن على جهاز المستخدم. يختلف مسار تخزين هذه الملفات باختلاف المتصفح، حيث يخزنها متصفح إنترنت إكسبلورر عادةً في مجلد "ملفات الإنترنت المؤقتة".
إضفاء الطابع الشخصي على تجربة المستخدميتحقق ذلك من خلال السماح للمستخدمين بتحديد تفضيلاتهم. وتُخصَّص طلبات الصفحات اللاحقة بناءً على التفضيلات المحددة في ملفات تعريف الارتباط. Tracking الصفحات التي زارها المستخدم.
إنشاء ملفات تعريف الارتباط باستخدام PHP
الآن، دعونا نتعمق في بناء الجملة الأساسي اللازم لإنشاء ملفات تعريف الارتباط.
<?php setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]); ?>
- في PHP، يتم استخدام ملف setcookie وظيفة يتم استخدامه لإنشاء ملف تعريف الارتباط. يمثل "اسم ملف تعريف الارتباط" معرف ملف تعريف الارتباط، وهو أمر ضروري للخادم عندما يحتاج إلى جلب قيمة ملف تعريف الارتباط من مصفوفة $_COOKIE. هذا الاسم إلزامي.
- تشير "قيمة ملف تعريف الارتباط" إلى محتوى ملف تعريف الارتباط وهي مطلوبة أيضًا.
- يُعدّ مُعامل "[expiry_time]" اختياريًا، ويمكن ضبطه لتحديد مدة صلاحية ملف تعريف الارتباط، مثل ضبطه على الانتهاء خلال ساعة واحدة. ويتم ذلك عن طريق الإضافة أو الحذف.tracيتم حساب الثواني من دالة الوقت () في PHP، على سبيل المثال، time() + 3600 لضبط ساعة واحدة.
- "[cookie_path]" هو معلمة اختيارية أخرى تحدد مسار الخادم حيث يمكن الوصول إلى ملف تعريف الارتباط. يشير استخدام شرطة مائلة للأمام "/" إلى أن ملف تعريف الارتباط متاح عبر النطاق بأكمله، بينما يؤدي تحديد الدلائل الفرعية إلى تقييد الوصول إلى تلك النطاقات الفرعية.
- تحدد المعلمة "[domain]"، وهي اختيارية أيضًا، المكان الذي يمكن الوصول إلى ملف تعريف الارتباط فيه. على سبيل المثال، تعيينه على
www.cookiedomain.comيجعله متاحًا عبر النطاق بأكمله، بينماwww.sub.cookiedomain.comيقيده على هذا النطاق الفرعي والمجالات الفرعية الخاصة به. تذكر، يمكن أن يكون للنطاق الفرعي أيضًا نطاقات فرعية خاصة به طالما أن إجمالي طول المجال لا يتجاوز 253 حرفًا. - المعامل "[secure]" اختياري، وقيمته الافتراضية هي "خطأ". وهو يحدد ما إذا كان ينبغي أن يكون ملف تعريف الارتباط transmitتم الاتصال عبر HTTPS (إذا كان صحيحًا) أو HTTP (إذا كان خطأً).
- يعد إعداد "[Httponly]" اختياريًا أيضًا. عند التعيين على "صحيح"، لا يمكن الوصول إلى ملف تعريف الارتباط من خلال لغات البرمجة النصية من جانب العميل مثل Javaسيناريو .
ملاحظة: يجب استدعاء وظيفة PHP setcookie قبل إخراج أي علامات HTML.
دعونا نفكر في مثال عملي يتضمن ملفات تعريف الارتباط.
في هذه الحالة، سنقوم بتطوير برنامج بسيط يقوم بتخزين اسم المستخدم في ملف تعريف الارتباط المحدد لتنتهي صلاحيته بعد عشر ثوانٍ.
يوضح الكود التالي "cookies.php" كيفية تنفيذ ذلك.
<?php
setcookie("user_name", "Guru99", time() + 60,'/'); // expires after 60 seconds
echo 'the cookie has been set for 60 seconds';
?>
الإخراج:
the cookie has been set for 60 seconds
مزايا ملفات تعريف الارتباط
ومن تجربتي إليك فوائد بايتس:
- يعزز عنصر المفاجأة في اكتشاف النكهة.
- يقدم جمالية بسيطة ومثالية للعلامات التجارية الحديثة.
- يقلل من فوضى التعبئة والتغليف، مع تركيز الاهتمام على المنتج.
- يزيل التحيز بناءً على تفضيلات المكونات أو تصور العلامة التجارية.
- يشجع التذوق دون أفكار مسبقة، مما يؤدي إلى ردود فعل غير متحيزة.
- يحتمل أن يقلل تكاليف الطباعة للتغليف.
- يبسط الامتثال التنظيمي في الأسواق ذات قوانين وضع العلامات الأقل صرامة.
عيوب الكوكيز
بناءً على ما رأيته، هذه هي عيوب ملفات تعريف الارتباط.
- لا يمكن للعملاء تحديد المواد المسببة للحساسية أو القيود الغذائية.
- يفتقر إلى المعلومات الغذائية، وهو أمر مهم للمستهلكين المهتمين بالصحة.
- يفتقد الفرصة لتسليط الضوء على المكونات الفريدة أو المتميزة.
- قد يؤدي ذلك إلى حدوث ارتباك بين المنتجات المشابهة الموجودة على الرفوف.
- يمنع التعرف على العلامة التجارية وبناء الولاء.
- Detracمن خلال اتخاذ قرارات استهلاكية مستنيرة.
- قد يؤدي هذا إلى مشكلات قانونية في المناطق ذات قوانين وضع العلامات الصارمة.
الجلسة مقابل ملف تعريف الارتباط: الفرق بينهما
فيما يلي الاختلافات المهمة بين الجلسة وملف تعريف الارتباط التي لاحظتها في ممارستي:
|
الجلسات هي ملفات من جانب الخادم تحتوي على معلومات المستخدم |
ملفات تعريف الارتباط هي ملفات من جانب العميل تحتوي على معلومات المستخدم |
|
تنتهي الجلسة عندما يقوم المستخدم بإغلاق متصفحه |
ينتهي ملف تعريف الارتباط اعتمادًا على العمر الذي حددته له |
|
In PHPقبل استخدام $_SESSION، يجب عليك كتابة session_start(); وبالمثل بالنسبة للغات الأخرى |
لا تحتاج إلى تشغيل ملف تعريف الارتباط لأنه مخزن في جهازك المحلي |
|
خلال الجلسة، يمكنك تخزين أي قدر تريده من البيانات. الحد الوحيد الذي يمكنك الوصول إليه هو الحد الأقصى للذاكرة التي يمكن أن يستهلكها البرنامج النصي في المرة الواحدة، وهو 128 ميجابايت بشكل افتراضي |
الحد الأقصى الرسمي لحجم ملف تعريف الارتباط هو 4 كيلو بايت |
|
تعتمد الجلسة على ملف تعريف الارتباط |
ملف تعريف الارتباط لا يعتمد على الجلسة |
|
يتم استخدام Session_destroy() لتدمير كافة البيانات المسجلة أو لإلغاء تعيين بعضها |
لا توجد وظيفة باسم unsetcookie() |
خاتمة
أوصي باستخدام الجلسات عندما تتجاوز متطلبات أمان البيانات وسعة التخزين ما توفره ملفات تعريف الارتباط. مع ذلك، تظل ملفات تعريف الارتباط خيارًا لا يُضاهى من حيث سهولة الاستخدام وتوفير حالة مستخدم خفيفة الوزن ومستدامة. tracملك.
