Session – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה
הרחבה
שורה 17:
 
רוב הסשנים שנפתחים בין [[שרת-לקוח|שרת ללקוח]] מנוהלים ב[[שכבת התעבורה של מודל ה-OSI|שכבת התעבורה]] – חיבור אחד עבור כל סשן. עם זאת, כל שלב (phase) בסשן של טרנזקציית רשת ([[HTTP]]) יוצר חיבור נפרד. שימור ההמשכיות בין שלבים דורש שימוש במזהה סשן (session ID). המזהה מוטבע בתוך האלמנטים <code><”…”=a href></code> ו-<code><form></code> של שפת ה-[[HTML]] ב[[דף אינטרנט דינמי|דפי אינטרנט דינמיים]], כך שהוא מועבר חזרה אל ה-[[Common Gateway Interface|CGI]] ב[[צד-שרת|צד השרת]]. לאחר מכן ה-CGI משתמש ב-session ID על מנת להבטיח את המשכיות הסשן בין שלבי הטרנזקציה. אחד היתרונות של חיבור נפרד עבור כל שלב הוא בכך שזה עובד טוב על פני חיבורים עם [[רוחב פס]] נמוך.
 
== סשנים של צד לקוח בפרוטוקול HTTP ==
סשנים של [[צד לקוח]] ב[[פרוטוקול תקשורת|פרוטוקול]] [[HTTP]] משתמשים ב[[עוגייה (אינטרנט)|עוגיות]] (cookies) ובטכניקות [[הצפנה]] על מנת לשמור מידע אודות ה[[מצב (מדעי המחשב)|מצב]] (state) מבלי שיהיה צורך לשמור כמויות גדולות של נתונים ב[[צד-שרת|צד השרת]]. כאשר השרת מציג [[דף אינטרנט דינמי]], הוא שולח ללקוח (ה[[דפדפן]]) נתונים אודות המצב הנוכחי בצורה של עוגייה. הלקוח שומר את העוגיה ב[[זיכרון (מחשב)|זיכרון]] או על ה[[דיסק קשיח|דיסק]]. בכל בקשה (request) עוקבת שהלקוח שולח חזרה אל השרת, הוא מצרף את העוגייה, והשרת משתמש בנתונים שבעוגייה כדי "לזכור" את המצב של ה[[יישום מחשב|יישום]] עבור אותו לקוח ספציפי, וכדי ליצור תגובה (response) מתאימה.
 
מכניזם זה עובד טוב ברוב המקרים. עם זאת, נתונים אשר מאוחסנים בצד הלקוח חשופים לשינויים זדוניים על ידי הלקוח או על ידי תוכנה שיש לה גישה למחשב הלקוח. על מנת להשתמש בסשנים בצד הלקוח במקרים בהם נדרשת סודיות ואמינות, יש להבטיח את הבאים:
# סודיות (confidentiality): שום דבר חוץ מהשרת לא אמור להיות מסוגל לפרש את הנתונים של הסשן.
# אמינות (data integrity): שום דבר חוץ מהשרת לא אמור להיות מסוגל להכניס שינויים בנתוני הסשן (בטעות או עם כוונה זדונית).
# אותנטיות: שום דבר חוץ מהשרת לא אמור להיות מסוגל ליזום יצירה של סשנים חוקיים.
 
על מנת להשיג זאת, השרת צריך להצפין את נתוני הסשן לפני שליחתם אל הלקוח, ויש למנוע את השינוי של מידע כזה על ידי כל גורם אחר חוץ מהשרת על ידי שימוש בשיטות הצפנה.
 
העברת מידע אודות המצב קדימה ואחורה בין השרת ללקוח עבור כל בקשה שנשלחת, היא פרקטית רק כאשר הגודל של העוגייה הוא קטן. למעשה, סשנים של צד הלקוח חוסכים בשטח דיסק על השרת בתמורה ל[[רוחב פס]] גדול יותר הנדרש עבור כל בקשת רשת. יתר על כן, דפדפנים מגבילים את מספר וגודל העוגיות ש[[אתר אינטרנט]] מורשה לשמור. על מנת לשפר את היעילות וכדי לאפשר שליחת כמות גדולה יותר של נתוני סשן, השרת יכול [[דחיסת נתונים|לדחוס]] את הנתונים לפני יצירת העוגייה, ואז לפרוס אותם חזרה כאשר העוגייה מוחזרת מהלקוח.
 
== ראו גם ==
* [[HTTP]]
* [[HTTPS]]
* [[עוגייה (אינטרנט)]]
* [[דף אינטרנט דינמי]]
 
[[קטגוריה:פרוטוקולי תקשורת]]