Active Server Pages
מתוך ויקיפדיה, האנציקלופדיה החופשית
Active Server Pages (עברית: דפי שרת אקטיביים), המוכרת גם בראשי התיבות ASP, היא טכנולוגיית צד־שרת מבית מיקרוסופט המאפשרת תכנות בשפות ActiveX Scripting, שהמוכרות והנפוצות שבהן הן VBScript ו־JScript. קטעי הקוד משתמשים באובייקטים שמספקת ASP כדי לתקשר עם הלקוח ועם השרת, וכך ליצור יישום דינמי.
טכנולוגיית ASP זמינה בתאימות מלאה רק על שרתי IIS של מיקרוסופט. למרות זאת, קיימות חלופות עבור שרתים אחרים. טכנולוגיית ASP עבור שרת IIS ממומשת כרכיב ISAPI אשר מנתח את הדפים, ומספק את האובייקטים של ASP (ראה למטה) למנועי הסקריפטינג.
בשנת 2002 יצאה הטכנולוגיה החדשה של מיקרוסופט ליצירת יישומי אינטרנט דינמיים הנקראת ASP.NET, ועושה שימוש בפלטפורמת .NET של מיקרוסופט.
תוכן עניינים |
[עריכה] האובייקטים שמספקת ASP למתכנת
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, שמכיל מידע על השגיאה האחרונה שהתרחשה.
- השיטה Transfer של אובייקט Server מעבירה את השליטה לדף ASP אחר (מעין goto). לדף שמקבל את השליטה יש גישה לכל המשתנים שהוכרזו בדף שהעביר את הגישה. כמו-כן, במידה והדף שאליו מועברת השליטה נמצא ביישום ASP אחר מהדף הקורא, הדף שאליו מועברת השליטה מתבצע במסגרת יישום ה-ASP הקורא. כלומר, מכל בחינה שהיא, הדף שאליו מועברת השליטה מתבצע כעין המשך של הדף הקורא.
- אובייקט זה מכיל מידע על השגיאה האחרונה שהתרחשה במסגת דף ה-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:
- Java System Active Server Pages 4.0 Sun - גרסה של חברת סאן מיקרוסיסטמס לטכנולוגיית ASP, התומכת ברבות מהטכנולוגיות שמתכנתי ASP מורגלים אליהן כמו ADO ו-ODBC וכמו-כן בשפות VBScript ו-JScript. עם זאת, אין לגרסה זו תאימות מלאה עם טכנולוגיית ASP המקורית של מיקרוסופט.
היא פועלת על מספר מערכות הפעלה, הכולל את מספר גרסות של יוניקס (סולאריס, HP-UX ועוד) ועל גרסות השרת של Windows, ועל שני שרתי דפי אינטרנט: Sun Java System Web Server של סאן עצמה, ועל שרת אפאצ'י.
- Apache::ASP - זהו פורט של טכנולוגיית ASP עבור שרת Apache בלבד ותומך בשפת Perl בלבד.
- Active-FoxPro-Pages - זוהי טכנולוגיה הדומה ל-ASP המאפשרת כתיבת קוד Visual FoxPro בשפת xBASE משולב בתגי HTML, והרצתו על שרת דפי אינטרנט. נתמכת רק על מערכות Windows (כמו Visual FoxPro עצמו), ועל מספר שרתי דפי אינטרנט: שרת IIS של מיקרוסופט, שרת אפאצ'י מגרסה 2.0 ומעלה, ועוד.
[עריכה] לקריאה נוספת
- ניקולס צ'ייס, ערכת לימוד ASP 3.0, הוצאת פוקוס מחשבים
- ג'ים בוינס, פיתוח מסדי נתונים לאינטרנט, הוצאת פוקוס מחשבים
[עריכה] קישורים חיצוניים
- תיעוד אודות ASP, באתר MSDN Library
- תיעוד אודות IIS 5 ו־ASP 3, באתר Windows 2000
- מדריך בסיסי ל־ASP3, באתר w3schools (באנגלית)
- ארגון ה־ASP הישראלי
- פורום תכנות ASP, בקהילה של תפוז אנשים
- Sun Java System Active Server Pages 4.0 - יישום מבוסס ג'אווה של חברת Sun לטכנולוגיית ASP
- פרויקט Apache::ASP
- Active-FoxPro-Pages - חיקוי של ASP עבור קוד הכתוב ב־Visual FoxPro