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

  מדריך ללימוד Servlets >הפעלת תגובת השרת>קשרים מתמשכים

הינך נמצא ב :

שימוש בקשרי HTTP מתמשכים

אחת הבעיות של HTTP 1.0 הייתה הדרישה ל-connection  נפרד עבור כל בקשה. כאשר נשלח דף Web המכיל מספר רב של תמונות, מחלקות, יישומונים, משך זמן הקמה של ה-connections היוו overhead גדול מאוד יחסית לזמן ההורדה עצמו. כדי לפתור בעיה זו רבים מהדפדפנים תומכים בהרחבה keep-alive. באמצעותה מודיע השרת לדפדפן כמה בתים מכילה התגובה ומשאיר את הקשר פתוח למשך זמן מסוים לאחר החזרת המסמך. הדפדפן מאבחן שהורדת המסמך הסתיימה על ידי מעקב אחר הבתים שנתקבלו ומשתמש שוב באותו ה-connection להמשך השידור. קשרים מתמידים מסוג זה הפכו לסטנדרט HTTP 1.1 ושרתים התומכים בפרוטוקול זה אמורים להשתמש בקשרים מתמידים אלא אם כן הלקוח הורה להם במפורש שלא לעשות כן (על ידי כותרת הבקשה "Connection:close").

Servlets יכולים לנצל קשרים מתמידים אלו. השרת אמור לנהל את רוב התהליך, אולם אין לו דרך לקבוע את אורך המסמך המוחזר ולכן על ה-Servlet להגדיר את כותרת התגובה Content-Length.
ה-Servlet יכול לקבוע את גודל המסמך המוחזר על ידי הצבת הפלט ב-Buffer על ידי ByteArrayOutputStream המחזיר את מספר הבתים באמצעות ה-size method. את הפלט המוצב 
ב-Buffer  ניתן לשלוח ללקוח על ידי ה-writeTo method .

השימוש בקשרים מתמידים ישתלם רק ל-Servlets הטוענים מספר רב של אובייקטים קטנים הנוצרים על ידם. היתרון המושג משתנה משרת לשרת ומדפדפן לדפדפן.



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