דף הבית   | מפת האתר   | אודות

 מדריך ללימוד Servlets >מעקב session >הצורך ב-session

הינך נמצא ב :

הצורך במעקב session

HTTP הינו stateless protocol, כלומר בכל פעם שלקוח מקבל דף מסמך הוא פותח HTTP connection נפרד לשרת ה-Web, השרת אינו שומר מידע אודות הלקוח. הדבר נכון גם לשרתים התומכים בקשרי HTTP מתמידים. החוסר בתמיכה מובנית לתחזוקת context information גורם למספר קשיים. לדוגמא, כאשר לקוח בחנות מקוונת מוסיף פריט לרשימת הקניות כיצד ידע השרת מה נכלל כבר ברשימה, או כאשר הלקוח מגיע לדף המאפשר ביצוע תשלום כיצד ידע השרת אילו פרטים ביקש לרכוש.

לפני Servlet sessions היו הפתרונות הבאים לבעיה זו: cookies, שכתוב של כתובת URL ושדות טופס נסתרים.    

Cookies

cookies הינם פיסות מידע טקסטואלי ששרת ה-Web שולח לדפדפן והוא מחזירם ללא שינוי בעת הביקור הבא באותו אתר. באמצעותם ניתן לאחסן מידע אודות session וכל קשר הנובע מכך יכול לחפש את ה-session  הנוכחי ולחלץ מידע אודות ה-session ממקום מסוים על מחשב השרת. לאחר מכן בדרישות נוספות השרת יכול להשתמש ב-hash table שהוא מתחזק כדי לקשר בין session id ל-cookie המתאים. זוהי הגישה הנפוצה לטיפול  ב-sessions אולם קיימים מספר חסרונות לשיטה זו: חלק מהמשתמשים מבטלים את אפשרות השימוש ב-cookies לשם הגנת הפרטיות. חסרון נוסף הוא שהתחזוקה והמעקב על cookies נעשים ברמת ממשק נמוכה.

 

שכתוב כתובת URL

בגישה זו הלקוח מצרף מספר נתונים לסופה של כל כתובת URL המזהים את ה-session ואילו השרת משווה את נתוני הזיהוי עם נתוני ה-session שאוחסנו על ידו. יתרונו של פתרון זה הוא שהוא פועל גם בדפדפנים שאינם תומכים ב-cookies או שהמשתמש  הפך את ה-cookie ללא זמין. עם זאת לפתרון זה אותם בעיות כמו ל-cookies, כלומר על תוכנת צד השרת לבצע פעולות תחזוקה וחישוב רבות. בנוסף יש לדעת שכאשר המשתמש עוזב את ה-session וחוזר דרך bookmark או קישור, מידע ה-session עלול להיאבד.

 

שדות טופס נסתרים

טפסי HTML יכולים להכיל שדות שיהיו נסתרים למשתמש. בשדות נסתרים אלו ניתן לאחסן מידע אודות
ה-sessions. חיסרון בולט של שיטה זו הוא שהיא פועלת רק בדפים הנוצרים דינאמית.

 

מעקב sessions  ב-Servlets

Servlets מספקים ממשק ברמה גבוהה למעקב אחרי sessions הבנויים על גבי cookies או שכתוב URL. למעשה רוב השרתים משתמשים ב-cookies במידה והדפדפן תומך בהם ומשנים אוטומטית את מעקב
ה-sessions לשיטת שכתוב URL אם ה-cookies אינם נתמכים או שבוטלו במפורש. מפתח ה-Servlet אינו צריך להטריד עצמו בטיפול בפרטים ואינו צריך להפעיל ישירות cookies או להוסיף מידע לכתובת ה-URL אלא הוא מקבל מקום נוח לאחסון אובייקטי תיווך הקשורים ל-sessions.



      
  כל הזכויות שמורות למערכות מידע אית"ן