Active Server Pages

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
קוד המקור של הדף iistart.asp המצורף לשרת IIS של מיקרוסופט מוצג בסביבת הפיתוח המשולבת Visual InterDev 6

Active Server Pages (עברית: דפי שרת אקטיביים), המוכרת גם בראשי התיבות ASP, היא טכנולוגיית צד-שרת מבית מיקרוסופט ליצירת אתר אינטרנט דינמיים, המאפשרת תכנות בשפות ActiveX Scripting, שהמוכרות והנפוצות שבהן הן VBScript ו-JavaScript. קטעי הקוד משתמשים באובייקטים שמספקת ASP כדי לתקשר עם הלקוח ועם השרת, וכך ליצור יישום דינמי.

טכנולוגיית ASP זמינה בתאימות מלאה רק על שרתי IIS של מיקרוסופט. למרות זאת, קיימות חלופות עבור שרתים אחרים. טכנולוגיית ASP עבור שרת IIS ממומשת כרכיב ISAPI אשר מנתח את הדפים, ומספק את האובייקטים של ASP (ראו להלן) למנועי הסקריפטינג.

בשנת 2002 יצאה הטכנולוגיה החדשה של מיקרוסופט ליצירת יישומי אינטרנט דינמיים הנקראת ASP.NET, ועושה שימוש בפלטפורמת ‎.NET‏ של מיקרוסופט.

האובייקטים שמספקת ASP למתכנת[עריכת קוד מקור | עריכה]

דוגמה ליישום ASP: עמוד העזרה המצורף לשרת IIS, הכתוב ב-ASP ומורץ על שרת IIS עצמו

ASP מספקת למתכנת שישה עצמים בסיסיים:

  • Request - המשמש לקבלת מידע מהמשתמש, כולל המידע שנשלח בבקשת ה-HTTP, מידע על הדפדפן ומערכת ההפעלה, קריאת עוגיות מהלקוח ועוד.
  • Response - המשמש לשליחת מידע חזרה ללקוח, כולל שליחת עוגיות.
  • Session - לטיפול במצב הסשן (session state). מקביל לעוגיות, אך מאוכסן על השרת.
  • Application - לשמירת מידע כללי עבור יישום מסוים.
  • Server - לגישה אל השרת, יצירת עצמים של רכיבי ActiveX על השרת ועוד.
  • ObjectContext - נועד לשימוש יחד עם Microsoft Transaction Server לשליטה על טרנזקציות בדף ה-ASP.‏

בגרסה 3.0 של ASP נוסף אובייקט חדש, ASPError, המספק מידע על השגיאה האחרונה שהתרחשה. האובייקט לא קיים באופן אוטומטי כמו השישה לעיל, אלא יש ליצור אותו על ידי השיטה Server.GetLastError כשרוצים לקבל את המידע על השגיאה (ראו להלן).

גרסאות[עריכת קוד מקור | עריכה]

ל-ASP ה"קלאסית", כלומר לא ASP.NET ‏היו 3 גרסות עיקריות:

  • ASP 1.0‏ - הופצה יחד עם IIS 3.0 ‏בדצמבר 1996
  • ASP 2.0 ‏- הופצה יחד עם IIS 4.0‏ בספטמבר 1997
  • ASP 3.0‏ - הופצה יחד עם IIS 5.0 בנובמבר 2000
    גרסה זו הייתה הגרסה האחרונה של ASP ה"קלאסית", והיו בה מספר תוספות שיפורים ניכרים לעומת הגרסות הקודמות. ביניהם:
    • לאובייקט Session נוספו השיטות Session.Contents.Remove ו-Session.Contents.RemoveAll שאפשרו למחוק ערכים שהוכנסו לאובייקט ה-Session.‏ עד גרסה זו היה זה בלתי-אפשרי, והם היו נמחקים רק כשה-session היה נסגר (כשהגולש היה עוזב את האתר בצורה מסודרת, או לאחר 20 דקות של חוסר פעילות).
    • לאובייקט Application נוספו השיטות Application.Contents.Remove ו-Application.Contents.RemoveAll שאפשרו למחוק ערכים שהוכנסו לאובייקט ה-Application.‏ עד גרסה זו היה זה בלתי-אפשרי, והם היו נמחקים רק כשההיישום היה מסתיים - כשהגולש האחרון היה עוזב את היישום.
    • השיטה Response.IsClientConnected שאומרת האם הגולש עדיין מחובר לאתר שופרה ופעלה תמיד. עד גרסה 3.0 השיטה פעלה כראוי רק לאחר שנשלח מידע אל המשתמש.
    • תוספות לאובייקט Server‏:
      • השיטה Transfer‏ של אובייקט Server מעבירה את השליטה לדף ASP אחר (מעין goto).‏ לדף שמקבל את השליטה יש גישה לכל המשתנים שהוכרזו בדף שהעביר את הגישה. כמו כן, במידה והדף שאליו מועברת השליטה נמצא ביישום ASP אחר מהדף הקורא, הדף שאליו מועברת השליטה מתבצע במסגרת יישום ה-ASP הקורא. כלומר, מכל בחינה שהיא, הדף שאליו מועברת השליטה מתבצע כעין המשך של הדף הקורא.
        שיטה זו יכולה גם לשמש כחלופה לשיטה Response.Redirect, ששולחת ללקוח את כותר HTTP‏ "302‎ Object Moved"‏. Transfer אינה דורשת מהלקוח לבצע בקשת HTTP נוספת, ובכך חוסכת עומס מהשרת.
      • השיטה Execute‏ של אובייקט Server מעבירה את השליטה לדף ASP אחר, אך בניגוד ל-Server.Transfer, מחזירה את השליטה לדף הקורא, בסיום ביצוע הדף שנקרא (מעין קריאה לפונקציה).
      • ‏השיטה GetLastError של אובייקט Server מאפשרת קבלת אובייקט ASPError, שמכיל מידע על השגיאה האחרונה שהתרחשה.
    • אובייקט ASPError
      אובייקט זה מכיל מידע על השגיאה האחרונה שהתרחשה במסגרת דף ה-ASP.‏ הוא נוח במיוחד לשימוש ביצירת דפי שגיאת 500-100 מותאמים אישית, שנקראים על ידי השרת. דף שגיאה כזה, שמשתמש באובייקט ASPError יוכל להציג מידע על שגיאה שהתרחשה ברמת שרת IIS, ברמת מנוע התסריט או ברמת רכיב COM שנקרא בקוד. דף כזה ייקרא גם במקרה של שגיאת סקריפט בלתי מטופלת, לדוגמה.
      בדרך כלל יש ליצור את האובייקט על ידי דרישה בשיטה Server.GetLastError, אבל במקרה של דף שגיאת 500-100 מותאם אישית הוא נוצר לבד.
      בנוסף, ניתן לטפל באמצעות אובייקט זה בשגיאות שהתרחשו בכתיבה למסדי נתונים, ולקבוע, למשל, שהסקריפט ימשיך לרוץ למרות השגיאה וכדומה.

ASP 2.0 נתמכה גם תחת שרת Personal Web Server של מיקרוסופט, שניתן היה להתקנה על Windows 95 ועל Windows 98.‏ ASP 3.0 לא הייתה זמינה עבור מערכות הפעלה אלו.

תחת Windows Me‏ ASP לא נתמכה רשמית (מאחר והתקנת IIS או PWS עליה לא נתמכה), אך באתר מיקרוסופט נכתב שניתן להתקין עליה את Personal Web Server, אם כי הדבר אינו מומלץ‏[1]. גם תחת Windows XP Home Edition לא נתמכה ASP, מאחר שגם על מערכת זו לא נתמכה IIS‏[2].

חלופות ל-ASP[עריכת קוד מקור | עריכה]

מלבד המתחרות הישירות ב-ASP, שהן PHP,‏ JSP,‏ ו-ColdFusion קיימות מספר גרסות אלטרנטיביות של ASP. כלומר, מערכות תסריטי צד-שרת נפרדות, אך דומות ל-ASP:

  • Active-FoxPro-Pages - זוהי טכנולוגיה הדומה ל-ASP המאפשרת כתיבת קוד Visual FoxPro בשפת xBASE משולב בתגי HTML, והרצתו על שרת דפי אינטרנט. נתמכת רק על מערכות Windows (כמו Visual FoxPro עצמו), ועל מספר שרתי דפי אינטרנט: שרת IIS של מיקרוסופט, שרת אפאצ'י מגרסה 2.0 ומעלה, ועוד.

לקריאה נוספת[עריכת קוד מקור | עריכה]

  • ניקולס צ'ייס, ערכת לימוד ASP 3.0, הוצאת פוקוס מחשבים
  • ג'ים בוינס, פיתוח מסדי נתונים לאינטרנט, הוצאת פוקוס מחשבים

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]