الترجمة الصينية للجلسة تسمى "محادثة"، ويشير معناها الأصلي إلى سلسلة من الإجراءات/الرسائل التي لها بداية ونهاية، على سبيل المثال، عند إجراء مكالمة هاتفية، سلسلة العمليات من التقاط الهاتف إلى الاتصال لتعليق الهاتف يمكن أن يسمى جلسة. الفهم الحالي للجلسة في المجتمع مربك للغاية: في بعض الأحيان يمكننا رؤية الكلمات "أثناء جلسة المتصفح،..."، تشير الجلسة هنا إلى الفترة من فتح نافذة المتصفح إلى إغلاقها، ويمكنك أيضًا رؤية متى بالإشارة إلى الجملة "المستخدم (العميل) أثناء الجلسة"، فقد تشير إلى سلسلة من الإجراءات التي يتخذها المستخدم (عادةً سلسلة من الإجراءات المتعلقة لغرض محدد، مثل تسجيل الدخول إلى شراء البضائع إلى الخروج.
ومع ذلك،
قد تشير عملية التسوق عبر الإنترنت هذه في بعض الأحيان إلى اتصال فقط، ولا يمكن استنتاج الفرق إلا من السياق.
و/أو "الحفاظ على الحالة" لها معنيان. "موجه نحو الاتصال" يعني أنه يجب على الأطراف المتصلة أولاً إنشاء قناة اتصال قبل الاتصال، مثل إجراء مكالمة هاتفية لا يمكن أن يبدأ حتى يرد الطرف الآخر على الهاتف " "الحالة" تعني أنه يمكن للطرف المتصل ربط سلسلة من الرسائل بحيث يمكن أن تعتمد الرسائل على بعضها البعض. على سبيل المثال، يمكن للنادل التعرف على العميل القديم الذي يأتي مرة أخرى ويتذكر أن العميل كان مدينًا للمتجر بدولار في المرة السابقة هذه الأمثلة على نوع واحد هي "جلسة TCP" أو "جلسة POP3".
نظرًا لأن هذا الالتباس لا رجعة فيه، فمن الصعب أن يكون لديك معيار موحد لتعريف الجلسة، وعند القراءة عن الجلسة، لدينا واحدة فقط يمكن فهمها من خلال الاستدلال من السياق: على سبيل المثال، عندما نجري مكالمة هاتفية، من لحظة إجراء المكالمة إلى لحظة إنهاء المكالمة، يظل الهاتف متصلاً، لذلك تسمى حالة الاتصال هذه بالجلسة وهي عامة المتغير الموجود دائمًا أثناء التفاعل بين الزائر والموقع بأكمله. عندما لا يدعم العميل ملف تعريف الارتباط (COOKIE)، ومن أجل ضمان دقة البيانات وأمانها، سيتم تخصيص متغير الجلسة للزائر الذي يزور الموقع. ما يسمى بمعرف الجلسة يتم تخزينه في ملف تعريف الارتباط الخاص بالعميل أو تمريره عبر عنوان URL.
يملأ اختراع الجلسة قيود بروتوكول HTTP: يعتبر بروتوكول HTTP بروتوكولًا عديم الحالة ولا يمكنه معرفة حالة تصفح المستخدم عندما يكون. قيد الاستخدام، بعد أن يكمل الخادم الاستجابة، يفقد الخادم الاتصال بالمتصفح، وهذا يتوافق مع الغرض الأصلي لبروتوكول HTTP. يحتاج العميل فقط إلى مطالبة الخادم بتنزيل ملفات معينة، لا العميل ولا الملف من الضروري تسجيل السلوك السابق لبعضنا البعض، وكل طلب مستقل، تمامًا مثل العلاقة بين العميل وآلة البيع أو هايبر ماركت عادي (بدون عضوية)،
لذلك من خلال الجلسة (ملف تعريف الارتباط)، يكون الأمر مختلفًا طريقة الحل) تسجل معلومات المستخدم ذات الصلة للتأكيد عندما يقدم المستخدم طلبًا إلى خادم الويب مرة أخرى، ويتيح اختراع الجلسات للمستخدم حفظ معلوماته عند التبديل بين صفحات متعددة، مع هذه التجربة لا يمكن استخدامه في الصفحة التالية (على الرغم من أنه من الممكن أيضًا تنفيذ النموذج وعنوان url، إلا أن هذه طرق غير مرضية للغاية)، ويمكن استخدام المتغيرات المسجلة في الجلسة كمتغيرات عامة.
إذن ما فائدة الجلسة؟ لقد استخدم الجميع عربة التسوق عند التسوق عبر الإنترنت. يمكنك إضافة المنتجات التي تختارها إلى عربة التسوق في أي وقت، وأخيرًا انتقل إلى طاولة الدفع للتحقق من ذلك. خلال العملية بأكملها، تلعب عربة التسوق دور التخزين المؤقت للمنتجات المحددة، ويتم استخدامها لتتبع أنشطة المستخدم على موقع الويب. وهذا هو دور الجلسة، ويمكن استخدامه لمصادقة هوية المستخدم وحالة البرنامج التسجيل، وبين الصفحات المعلمة، الخ.
يتم استخدام تقنية ملفات تعريف الارتباط في تنفيذ الجلسة. ستحفظ الجلسة ملف تعريف الارتباط الذي يحتوي على Session_id (رقم الجلسة) من جانب العميل؛ وحفظ متغيرات الجلسة الأخرى على جانب الخادم، مثل اسم_الجلسة، وما إلى ذلك. عندما يطلب المستخدم من الخادم، يتم إرسال Session_id أيضًا إلى الخادم. من خلال استخراج المتغيرات المحفوظة على جانب الخادم من خلال Session_id، يمكنك تحديد هوية المستخدم. في الوقت نفسه، ليس من الصعب أن نفهم سبب فشل الجلسة في بعض الأحيان.
عندما يقوم العميل بتعطيل ملف تعريف الارتباط (انقر فوق "أدوات" - "خيارات الإنترنت" في IE، انقر فوق عنصر "الأمان" - "المستوى المخصص" في مربع الحوار المنبثق، وقم بتعيين "السماح بملف تعريف الارتباط لكل محادثة" على تعطيل) ، Session_id لن يتم تمريرها، وستكون الجلسة غير صالحة في هذا الوقت. ومع ذلك، يمكن لـ php5 التحقق تلقائيًا من حالة ملف تعريف الارتباط على نظام التشغيل Linux/Unix. إذا تم تعطيل العميل، فسيقوم النظام تلقائيًا بإلحاق Session_id بعنوان URL وتمريره. لا يملك مضيفو Windows هذه الوظيفة.
الوظائف والاستخدامات الشائعة للجلسة
Session_start(): ابدأ جلسة أو قم بإرجاع جلسة موجودة.
ملاحظة: هذه الدالة لا تحتوي على معلمات والقيمة المرجعة صحيحة. إذا كنت تستخدم جلسات عمل تعتمد على ملفات تعريف الارتباط، فيجب ألا يحتوي المتصفح على أي مخرجات قبل استخدام Session_start()، وإلا سيحدث الخطأ التالي:
تحذير: لا يمكن إرسال محدد ذاكرة التخزين المؤقت للجلسة - تم إرسال الرؤوس بالفعل (بدأ الإخراج في /usr/local/Apache/ htdocs/cga/member/1.php:2)...
يمكنك بدء Session.auto_start=1 في php.ini، بحيث لا تحتاج إلى استدعاء Session_start() في كل مرة قبل استخدام Session. ولكن هناك بعض القيود على تمكين هذا الخيار، إذا تم تمكين Session.auto_start بالفعل، فلا يمكنك وضع كائنات في الجلسة لأنه يجب تحميل تعريف الفئة قبل بدء الجلسة لإعادة إنشاء الكائن في الجلسة.
سيتم إجراء تسلسل لجميع المتغيرات المسجلة بعد اكتمال الطلب. يتم وضع علامة على المتغيرات المسجلة ولكن غير المحددة على أنها غير محددة. لا يتم تعريف هذه المتغيرات أيضًا بواسطة وحدة الجلسة عند عمليات الوصول اللاحقة ما لم يحددها المستخدم لاحقًا.
لا يمكن إجراء تسلسل لبعض أنواع البيانات، وبالتالي لا يمكن حفظها في الجلسة. تضمين متغيرات الموارد أو الكائنات ذات المراجع الدائرية (أي أن الكائن يمرر مرجعًا لنفسه إلى كائن آخر).