Active Server Pages

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש
קובץ:VID6-iisstart.jpg
קוד המקור של הדף 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:

לקריאה נוספת

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

קישורים חיצוניים

הערות שוליים

הערך באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0

32026840Active Server Pages