39
ההההה הההה:10/01/10 ההההההההה ההההה הההה- 13202 2009 ההההה ה- CGI Common Gateway Interface ההההה ההההה הההה :ההההההה הההה ההההההה ההה ההההה ההההההה ההההה הההה הההההה1

Cgi Final

Embed Size (px)

Citation preview

10/01/10תאריך הגשה:

13202 - טכנולוגיה במדיה חדשה

- סמסטר א2009

CGI

Common Gateway Interface

עבודת סיכום קורס

:המגישים

אמיר בוכולטר

אנה חוטין

אנסטסיה פרנקל

מיקי גורליק

:המרצים

דן כהן-וקס

שלומית בן-שחר

1

העניינים תוכן

3 מבוא

CGI? 4-5 מהי טכנולוגית :1פרק

6-7 פועלת? CGI כיצד טכנולוגית :2פרק

8-10 שימוש בפרוטוקולים:3פרק

10-11 ניתוח טכנולוגי ע"פ מודל שבע שכבות:4פרק

1611- יישומים ושימושים:5פרק

16-17 יתרונות וחסרוות:6פרק

17-19 היסטוריה:7פרק

19-20 כיווני התפתחות עתידיים:8פרק

21 סיכום

22-24 ביבליוגרפיה

24-26 נספחים

28-30 תוספות

2

מבוא

מאפשרת תקשורת, הCGIעבודה זו עוסקת בניתוח עקרונות הפעולה של טכנולוגיה אינטראקטיבית בין משתמש הקצה לשרתי אינטרנט. טכנולוגיה זו משמשת לתחומים שונים

של אינטראקציה בין משתמש למשתמש ולבין משתמשבעלי דרישות באתרי האינטרנט ויישומים ליישום.

ולא רק לאסוף משאבים סטטיים. משאבCGIדפי האינטרנט יכולים לבצע פעולות באמצעות מכיל מידעv. לעומת זאת, משאב דינאמי Htmlסטטי לא משתנה לפי בקשות שונות, כמו קובץ

שמשתנה לפי בקשה, תלוי במצבים שדורשים לשנות נתונים )בסיס נתונים( שמוגדר ע"י משתמשאו כקלט מהמשתמש.

מאפשרת לשרתי אינטרנט לספק יישומים בעלי נגישותCGIבאמצעות תמיכה של תוכן דינאמי, בזמן-אמת למגוון משתמשי קצה אשר משתמשים בתצורה שונה של מחשב שמפעיל דפדפני

1אינטרנט שונים.

שליחסי הגומלין ותיאור CGI( יוצג הסבר מאפיינים של הטכנולוגיה 2 ו-1בפרקים הראשונים ) CGI. יפורטו התהליכים שבהם ה-(WEB אינטרנט )עם שרתימשתמש קצה )דפדפן אינטרנט(

מעורב על מנת להגיע לתוצאה הרצויה של הצגת המידע הרלוונטי בדפי האינטרנט וביישומים הדורשים התחברות לאינטרנט. בפרקים הבאים יוצג תיאור כללי של שימוש בפרוטוקולי

וסקירה מפורטת אודות האופן שבו הטכנולוגיה משתלבת בתוך מודלCGIתקשורת בטכנולוגיית שבע השכבות. בהמשך העבודה יהיו דוגמאות של הטכנולוגיה בתחום למידה והדרכה. בנוסף

ההשפעות של הטכנולוגיה על המורה והתלמיד. ולכך, יוסבר ותינתן סקירה על גורמי המרכיבים המשפיעים היתרונות והחסרונות של הטכנולוגיה כיום ויתואר

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

העבודה מתבססת על מקורות מהאינטרנט ומאמרים אקדמיים רלוונטיים בתחום התקשורתואבטחת האינטרנט.

1 Gundavaram, S., Guelich, S., & Birznieks, G. )Eds.(. )2000(. CGI programming with Perl. CA: O'Reilly.

3

?CGI טכנולוגית מהי:1 פרק

CGIראשי תיבות של , Common Gateway Interface,בעברית הוא, 'ממשק שערהירוש פ משותף'.

CGI אשר עובד על פרוטוקול( היא למעשה הממשק בין שרת דפי האינטרנט HTTPלבין תוכנה ) במידעולטפלליצור היא תפקידה 2הנמצאת אצל משתמש הקצה )לדוגמא: דפדפן הגלישה(.

העיבוד של תוך שימוש במשאבי המועבר בין המשתמש לשרת או בין שרת לשרת,דינאמי. השרתים עצמם ( דינאמיים )למשל- חיפוש באתר( שולחים את מידע שהמשתמש קצה הזיןHtmlדפי אינטרנט )

ומחזיר אתCGI. המידע מפוענח באמצעות תסריט קוד CGI ל- HTTPבתוכו דרך פרוטוקול תשובה לדף אינטרנט.

(. מאשפר לשרתיWEBהומצא כדי להגדיל את פונקציונליות של שרתי האינטרנט )CGI ממשק שנמצאים על אותה מכונה של שרת האינטרנט. לדוג'- גישהCGIהאינטרנט לתקשר עם יישומי

כדי לשלוח יותרCGIי לבצע חיפוש מתקדם. שרתי האינטרנט משתמשים ב-דלבסיסי נתונים כ:4 נגדיר את 'ממשק שער משותף'3מידע לדפדפן האינטרנט.

יכולים להיכתב במגוון שפות. כל שפה שיכולה לקבל או לאשרCGI(- ישומי Common )'משותף' עובד עם מגוון שלCGIקלט מהמשתמש, לעבד את קלט ולהחזיר תשובה דרך פלט. כמו-כן,

תוכנת שרת אינטרנט. פעילותמערכות הפעלה, אשר מתקשרים או מ יוצר יחסי גומלין עם משאבים שונים. מתווך או מתרגם בין משאביםCGI(- Gateway )'שער'

כמו: בסיסי נתונים, מחולל תוכניות גרפיות, ישומיי רשת שמדברים אחד עם השני ועובדים דרך ( ושפה שבה המשאבים מדבריםHTMLפתרון משותף. מתרגם את השפה שבה הדפדפן מדבר )

בסיס נתונים(.SQLח מבקש )והלקאשר הוא תקן תקשורת, תהליך, ממשק שמספק חוקים מוגדרים של יצירתCGI(- Interface )'ממשק'

מבצעים פעולות של ממשק שער משותף.CGI או תסריט קוד CGIיחסי גומלין. ישומיי . החץ הדו-כיווני המודגש ביןCGI, מציג זרימת נתונים כאשר המשתמש נכנס לתוכנית 1תרשים

שרת האינטרנט למחשב קצה, מצביע על זרימת הנתונים בין מחשב הקצה לבין השרת, תוך כדי הוא דו- כיווני מעביר את נתונים משרת האינטרנט CGI. המנגנון של HTTPשימוש בפרוטוקול

משום שהם פועלים כשער ביןGateway programs ובחזרה. הם בעצם נקראים GATEWAYל- ( ומספקים משאבים נחוצים, כגון: בסיסי נתונים, משוב מטפסיםWWWשרתי האינטרנט )

5 וכדומה.

. מתוך אתר:2009 דצמבר, 29(. ויקפדיה. נדלה 2009ממשק שער משותף. ) 2http://he.wikipedia.org/wiki/Common_Gateway_Interface

3 Visual Prolog. )2009(. CGI applications in visual prolog: basics. Retrieved January 8, 2010 from http://wiki.visual-prolog.com/index.php?title=CGI_Applications_in_Visual_Prolog:_Basics4 Sol, S. )2009(. Server-side scripting. Retrieved January, 8, 2010 from http://www.wdvl.com/Style/Scripting/WebWare/Server/5 NCSA HTTP. )1998(. The Common Gateway Interface. Retrieved December 29, 2009 from http://hoohoo.ncsa.illinois.edu/cgi/overview.html

4

'שער' לתוכניות מידע זרימת:1 תרשים

PERL, C++, C, Visual Basic, Javaנפוצות: תכנות שפות כמה , קיימותCGI של קוד תסריט לפתח כדיהאינטרנט. שרתי עם שמתקשרת אחרת שפה כל או

. צד-שרת היא בעצם שפת תיכנות לאינטרנטCGIניתן להוסיף ש- . ישנם שני סוגי שפות תיכנות לאינטרנט: צד-לקוח וצד-שרת

השרת מעביר את הפקודות לדפדפן )תוכנת הלקוח( והדפדפן מתרגם- צד-לקוח שפות.1 ,HTMLהפקודות באמצעות מהדר זמן ריצה פנימי. דוגמא לשפות צד-לקוח: את

JavaScript, VBScript, CSS, DHTML .וכדומה השרת מתרגם את הפקודות ושולח אותם כפקודות צד-לקוח שאותם- צד-שרת שפות.2

וכדומה.ASP, Perl, PHP, CGI דוגמאות לשפות תיכנות צד-שרת: .הדפדפן מתרגם: צד-שרתהיתרונות של שפות

תאימות - בגלל שכל העיבוד של המידע מבוצע על השרת עצמו כך אותו קוד יוכל.1 כל דפדפן לקוח באותה צורה ולא יהיה צורך בגרסאות שונות עבור כל דפדפן להתבצע על

שנשלח מן השרת כל דפדפן מסוגל להבין בצורתו. - את הקוד - ישנן פונקציות )כגון: פורומים, צ'אטים וכדומה( הדורשים עיבוד מידע שלפונקציונאליות.2

.צד-שרת( לפני שליחת הפלט לדפדפן תכנותהשרת )ע"י שפות לקובץCGI קוד תסריט בין רגיל. השוניHTML לקובץ הדומה כקובץCGI קוד תסריט את להגדיר ניתן

HTMLלקובץ הדינאמיקה. בניגוד הינו HTML יכול אשר מראש מוגדר טקסט הוראות סט המכיל

באופן תוכנתו אשר נתונים לשנות יכולCGI קוד , תסריט אותו כותב העורך כאשר רק להשתנותדינאמי.

5

פועלת? CGI טכנולוגית כיצד:2 פרק

CGIהעדכניים. תסריט קוד )שפת צד-שרת( נתמך על ידי מירב שרתי האינטרנטCGI ממשק שנכתב על גבי שרת מסוים יפעל כהלכה על כל שרת אחר שדומה פונקציונאלית.

)קלט של יישום, למשל-STDIN, יכול להיכתב בכל שפה אשר מסוגלת לקרוא CGIתסריט קוד לתוך ולכתוב סביבהSTDOUTמקלדת( לקרוא משתני וגם למשל- מסך( יישום, של )פלט

וכדומה. הוא שם שניתן במגוון שפות תיכנות לרצף נתונים מיוחד שפועל כקלט במערכותSTDINה-

ולהשתמש בתווים ברצףSTDINהפעלה. תוכניות/ ישומים יכולים לקרוא את רצף נתונים של שמנוהל ע"י תוכנות של מערכות הפעלה שמציג אתSTDOUTהנתונים כקלט שלהם. בדומה

רצף הנתונים כפלט. שקורא אתCGI יכול להגיע מתוכניות שונות, למשל מיישום STDIN , STDOUTרצף נתונים של

STDIN ומתוכנית של שרת אינטרנט ששולח את STDOUT.6

:7 פועל באופן הבאCGIתסריט קוד שנשלח לשרת( של משתמש מתוך טפסי אינטרנטSTDINקורא את קלט ) CGIיישום .1

WEB. בהתאם לפקודות בתוכו.CGI מפעיל את תסריט קוד WEBשרת .2.HTMLלתוך דפי CGIשל יישום ( STDOUT כותב את פלט )WEBשרת .3

.CGI השרת צריך לדעת להפעיל תהליך הקורא לתסריט קוד יפעל,CGIקוד העל מנת שתסריט CGI: 8קיימים מספר אפשרויות לרמז של

:לדוגמא/, cgi-bin /הכתובת שהמשתמש ביקש נמצאת בתיקיית.1http://www.somewhere.com/cgi- bin/arandomcgiprogram

בשרת עצמו וציון של הפניה לקבצים אלו בזמןCGIתהליך זה מבוצע ע"י יצירת ספריות והיא cgi-binהרצת התסריט קוד. שמה של התיקייה הראשית ברוב המקרים נקראת:

.URLמופיעה בתוך כתובת דוגמא. לCGIהשרת מותאם לזהות באופן אוטומטי קבצים בעלי סיומות מסוימות כקבצי.2

http://www.erehwon.org/gosearch.py, לדוגמא: URL בסוף כתובת px, pyהסיומת: :לדוגמא, CGIסיומת הקובץ מזוהה כקובצי מקור של.3

http://www.xyz.net/dosomething.cgi מתחיל לפעול, שרת האינטרנט מגדיר משתנים של סביבה אשרCGIלפני שהתסריט קוד

של לקוח, כותרות )IPמכילים את מידע של הבקשה ששרת האינטרנט מקבל. למשל- כתובת Headers של בקשות דף )HTML .וכדומה

6 Visual Prolog. )2009(. CGI applications in visual prolog: basics. Retrieved January 8, 2010 from http://wiki.visual-prolog.com/index.php?title=CGI_Applications_in_Visual_Prolog:_Basics7 Marshall, J. )2002(. CGI made Relay easy. Retrieved January, 8, 2010 from: http://www.jmarshall.com/easy/cgi/

, מתוך אתר 'איתן:2010, ינואר 8. נדלה Embedded web programming(. פילוסופיית 2009מסדי נתונים. ) 8http://vlib.eitan.ac.il/DB_web_prog/chdata4a.htm

6

. התסריט קוד שולח אתSTDIN מופעל וקורא את משתני הסביבה ואת ה-CGIתסריט קוד להוספת תוכן מתאים. התסריט קוד שולח את שארSTDOUT המתאימות ל- MIMEכותרות

ומסיים את פעולתו. השרת מזהה שהתסריט קוד סיים את פעולתו וסוגר אתSTDOUTהפלט ל- . HTTPחיבור לדפדפן. הדפדפן מציג את פלט מהתסריט קוד בעזרת פענוח כותרות

דרך הפקודה 'הדפסה', כאשר בכל שפה,HTML מחזיר את פלט: מסמך CGIתסריט קוד C: printf.9לעומת שפת Java: System.out.println הפקודה שונה. לדוגמא, ב-

וסרטי אודיו בדיוקJPEG יכול ליצור תמונות מסוג HTML, CGIלמרות שבדר"כ הפלט הוא קובץ באותה.

2:10תרשים מתואר ב CGIתהליך ניתן לראות את

.HTTP דרך פרוטוקול HTMLמשתמש קצה מבקש טופס של דף .1הטופס מאוחזר משרת האינטרנט ונשלח ללקוח )דפדפן אינטרנט(..2המשתמש ממלא את טופס ומאשר אותו, המידע נשלח בחזרה לשרת האינטרנט..3(.STDIN )דרך CGIשרת האינטרנט מעביר את נתונים ליישום )תסריט קוד( .4 ושולח את פלט עם מידע דינאמי בתוכו HTML מעבד את נתונים ויוצר דפי CGIיישום .5

לשרת אינטרנט. ( לדפדפן האינטרנטSTDOUTשרת האינטרנט שולח את תגובה של הפלט )התקבל דרך .6

של הלקוח )משתמש קצה(.

9 Garshol, M., L. )1999(. How the web works: HTTP and CGI explained. Retrieved December 29, 2009 from http://www.garshol.priv.no/download/text/http-tut.html10 Gundavaram, S. (1996). CGI programming on the World Wide Web. CA: O’Reilly.http://oreilly.com/openbook/cgi/ch02_03.html

7

CGI : תהליך2 תרשים

בפרוטוקולים שימושים:3 פרק

הוא פרוטוקול תקשורת שנועד להעברת דפי -)HTTP )Hypertext Transfer Protocolפרוטוקול HTML .ואובייקטים שהם מכילים )כמו תמונות, קובצי קול, סרטוני פלאש וכו'( ברשת האינטרנט

נעשיתHTTPהתקשורת בין השרת ללקוח ב- .OSIהפרוטוקול פועל בשכבת היישום של מודל ה-11.(APACHEלמשל- )WEB באמצעות בקשות ששולח הלקוח ותשובות שמחזיר שרת

(:3)תרשים HTTP שיטות בקשה עיקריים ב- 1.GET -.מיועדת לקבלת אובייקט שנמצא על השרת, בכתובת שניתנת בתחילת ההודעה

הן הנפוצות ביותר ברשת האינטרנט.GETבקשות 2.POST - גוף הודעה. בקשות את בקשות המכילותPOSTמשמשות בדרך כלל לשליחה

לשרת לשם עיבוד.HTMLשל נתונים מטפסי .HTML של POST או GET מעביר את מידע הנכנס עבורו בעזרת הבקשות CGIתסריט קוד ה

. מתוך אתר:2010, ינואר 8נדלה . HTTP (. פרוטוקול2008)יישום(. ) האפליקציה שכבת 11http://vlib.eitan.ac.il/tcpip/http.htm

8

HTTP של בקשהPOST אוGET: 3 תרשים

פרוטוקול פשוט להעברת דואר,( - (SMTP Simple Mail Transfer Protocolפרוטוקול הפרוטוקול פועל בשכבת היישום .דרך האינטרנט הסטנדרטי לשליחת דואר אלקטרוני הפרוטוקול

.OSIשל מודל ה- שונים, עד שיגיע לשרת היעד, אך אינו מאפשר משמש למשלוח דואר אלקטרוני בין שרתים

למשתמש לשלוף את הודעות הדואר המיועדות אליו מן השרת. קיימים פרוטוקולים אחרים .POP3, IMAPהמיועדים לשליפה של הודעות דואר, כגון

השולח משתמש בפקודות טקסטואליות פשוטות על מנת (.זהו פרוטוקול טקסטואלי )ולא בינארי השרת מגיב בקוד מספרי ובדרך כלל גם בטקסט כלשהו על מנת. לשלוח את ההודעה הרצויה

.MIMEש ב- להגיב לפקודות שנשלחו. כאשר יש צורך בהעברה של מידע בינארי נעשה שימו

- מספק אמצעים להעברת מסרים)MIME )Multipurpose Internet Mail Extensionsפרוטוקול . הוא מאפשרOSI באינטרנט. הפרוטוקול פועל בשכבת התצוגה של מודל ה-דואר אלקטרונישל

ברשת האינטרנט.ASCIIלמשתמשים להחליף ביניהם קבצי נתונים המכילים תמליל בקוד הפרוטוקול מאפשר גם העברת סוגים שונים של קבצי נתונים באינטרנט: תמונות,,בנוסף לכך

.(4 )תרשים קול, הנפשה וכדומה

9

האינטרנט משרתHTTP של תגובה:4 תרשים

המאפשרים לרשתות מחשבים פרוטוקול תקשורתSSL( Secure Sockets Layer -)פרוטוקול . )בין שרת האינטרנט לדפדפן הלקוח(בין שני יישומים מתקשרים תקשורת מאובטחת ומוצפנת

ותפקידו להעביר נתונים בצורה מוצפנת, כך שפענוח , מיושם בעיקר בדפדפןSSLפרוטוקול .הנתונים יוכל להתבצע על ידי המקבל בלבד

:CGIלדוג' הקשר לפרוטוקול .HTTPS דרך אתר מאובטח של חנות מסוימת הקונה ניגש לאתר האינטרנט.1.שרת האינטרנט של החנות שולח את המפתח הציבורי.2 ביט(. המפתח128 בעלשל הקונה מייצר מפתח זמני )הוא המפתח הסימטרי הדפדפן.3

הנ"ל מועבר לחנות באופן מוצפן תוך שימוש במפתח הציבורי של החנות. צורה זו מבטיחה שרק השרת של החנות והדפדפן של הקונה ידעו מהו המפתח הסימטרי ויוכלו

להעביר ביניהם מידע מוצפן תוך שימוש במפתח הסימטרי. כדי לאבטח עוד יותר את.ביניהם, המפתח הסימטרי יוחלף בעת יצירת שיחה חדשה התקשורת

SSL מפענח את מידע(. פרוטוקול CGI)הקונה מעביר לחנות את מספר כרטיס האשראי .4. מצפין אותו עם המפתח הסימטרי

השכבות שבע מודל פי על טכנולוגי ניתוח:4 פרק

10

קובעת ההיבטים הפיזיים של התקשורת בין משתמש הקצה לשרת, כגון סוג. השכבה הפיזית:1 התקשורת, רמת המתח בקו התקשורת והשימוש הכללי בחומרה לשם ביצוע מטלת התקשורת.

. בעת בקשת בקשות מרובות והצורך בעיבודם, ביצוע CGIשכבה זו בעלת היבט חשוב לעיבוד ה פעולתם ושליחת התוצאות למשתמש, נוצר עומס על מערכות השרתים ועל הרשת בכלליות. כדי

לוודא זרימת נתונים רציפה מקצה לקצה, חומרת השרת צריכה לאפשר מעבר נתונים רחב, שימוש בשרתים בעלי יכולת עיבוד מתאימה ותקשורת אמינה מבחינת היבט החומרה )כרטיסי

רשת וכבלים(.

(, אשר נשלח ברשת0,1 בשכבה זו מתבצע קידוד וא-קידוד הנתונים לקוד בינארי ). שכבת הקו:2 בעזרת חבילות מידע. תפקיד השכבה לדאוג להעברה תקינה של חבילות ברשת. בשכבה זו

נעשה גילוי ותיקון השגיאות.

משתמש הקצה והשרת מתקשרים בעזרת הכתובות המסופקות להן לקבלת. שכבת הרשת:3 מאפשר תקשורת בין רשתות דרך נתבים מבלי שמובטחIPנתונים ולשליחתם חזרה. פרוטוקול

שהמידע יגיע.

ומנהלת את זרימת הנותנים בין נקודות אלו, לפי בקשות שליחה וקבלה, בין. שכבת התובלה:4 נקודת השליחה והקבלה )משתמש הקצה לשרת(. באפשרות שכבה זו גם לבצע תיקון שגיאות

מספק שירות חסר שגיאות ומהימן בין המחשב מקורTCPבמידע הנשלח והמתקבל. פרוטוקול (.Connection Orientedליעד באמצעות יצירת חיבור מקושר )

CGI מייסדת את תחילת השיחה בין המשתמש לשרת שעליו מוטמע יישום . שכבת השיחה:5ומנהלת את זרימת הנותנים בין נקודות אלו, לפי בקשות שליחה וקבלה.

.SSLהשיחה שנוצרת יכולה להיות מוצפנת באמצעות פרוטוקול

המידע הנשלח, מקודד לחבילות מידע הנשלחות לשרת המקבל. השרת. שכבת התצוגה:6 מטפל בבקשה ושולח את המידע חזרה CGIמקדד את חבילות המידע חזרה לסדר כרונולוגי.

למשתמש. אשר מזהה את סוגי הקבצים המתקבלים ומודיע לשרת MIME–בשכבה זו פועל פרוטוקול ה

האינטרנט באלו סוגי קבצים עליו לטפל.

. שכבת היישום:7 CGIהיישום שנמצא אצל משתמש הקצה, הוא הדפדפן האינטרנט אשר מתקשר עם יישום

, הפרוטוקול אשרHTMLשנמצא על שרת האינטרנט. במקרה של תקשורת המבוססת על דפי . במקרה של שליחת מידע המיועד לתקשורת דואר אלקטרוני,HTTPמתבצע בו שימוש, הוא

. SMTPהתקשורת מתבצעת באמצעות פרוטוקול

פרוטוקוליםשכבה שםHTTP, SMTPשכבת יישום

MIMEשכבת תצוגהCGI, SSLשכבת שיחה

11

TCPשכבת התעבורהIPשכבת רשתשכבת הקו

שכבה הפיזית

ושימושים יישומים:5 פרק

משומשת קיום לצרכים רבים ברשת. החל מאתרים ממשלתיים אשר דורשיםCGI –טכנולוגית ה אפליקציות או פורום המנהלים קטנים פרטיים לאתרים ועד משתמש ומשוב אינטראקציות

בידוריות.

: תחום לימוד וההוראה בתחום הלימוד, מאפשר להתמקד בכמה CGIהמגוון הרחב של סוגי השימושים בטכנולוגיית

:12תחומים עיקריים

– מבוססים בעיקר על תיבות טקסט אשר שולחות מידע לשרת ומוצגות כחלק מדף ה –פורומיםHTML באופן מובנה בארכיטקטורת האתר. דוגמאות מפורסמות מרשתות ישראליות הן: אתר YNET בעל מערכת ה TALKBACKאתר תפוז המנהל רשת פורומים גדולה המחולקת לנושאים ,

אוHIGHLEARNואתרים לימודיים, דוגמת מערכת הפורומים הקיימת באפליקציית הרשת או . בתהליך הלמידה וההדרכה, פורומים הם חלק בלתי נפרד מקבוצות לימוד,drupal.orgבאתר

פורומים להפצת מידע, ותגובות מהירות על ידי המשתמשים. פורומים למטרות הדרכה ולימוד , בעזרת יכולתe-Leariningנמצאים בהיקף רב ברחבי רשת האינטרנט, ומבססות את המושג

התגובתיות המהירה וזרימת הנתונים בזמן אמת.

אינטראקציה המעניק תקשורת, כלי למורים/מדריכים מעניקים פורומים באפליקציות שימוש מיידית עם התלמידים ומקל על אופן הלמידה על ידי חסכון זמן בהרצאות, הפצת החומר ותשומת לב לבעיות ספציפיות בנוגע לתהליך הלמידה. מאידך, אפליקציות הפורומים מעניקות לתלמידים דרך מהירה ונוחה לאינטראקציה עם המורים/מרצים, ופלטפורמה למענה מיידי לבעיות ודיונים

סביב החומר הנלמד.

: דוגמא :13מבנה בסיסי ליצירת פורם קריא על ידי הדפדפן

12 Free internet media. )2007(. Uses of cgi scripts. Retrieved December 29, 2009 from http://www.cgiworks.net/uses-of-cgi-scripts.php13 Kyrnin, J. )2009(. About.com Guide: Using Forms and CGI. Retrieved December 29, 2009 from http://webdesign.about.com/od/cgi/ss/aa022299.htm

12

<form action="form.cgi" method="post>"Please enter your name: >input type="text" name="full_name" size="20>/ "<br>

<input type="Submit" name="submit" value="submit form>/ "/<form>

הסבר: – מאפשר אתPOST: מגדירה את הפורום ואת שיטת העובדה שלו. במקרה זה היא 1שורה

שליחת המידע המוכנס לפורום לשרת המיועד.: מגדירה את תיבת הטקסט שתוצג בדף.2שורה : יצרת כפתור שתפקידו הוא שליחת הפורום לשרת.4שורה : CGI שילוב

נפוצות. אחת שפות התכנות הCGIכשהמידע נשלח לשרת הוא מגיע דבר ראשון לתוכנת ה- . הסבר תכני על קבלת מידע מהפורום הבסיסי שהוזכר:PERLהמשמשת למטרה זו היא

מטרת השורות הבאות היא לחלק את המידע לחלקים של שם וערך:

מסוגלות העביר נתונים לבסיסיCGI תוכנות – (DATABASEכתיבה וקריאה מבסיסי נתונים ) נתונים, על ידי אפשרויות גישה שונות המוטמעות בהן, קריאת נתונים מאותם בסיסי נתונים והצגתם בדפי אינטרנט בפורמטים השונים. דוגמאות יכולות להילקח מאתרי אינטרנט אשר

דורשים את הירשמות המשתמש כדי לאפשר לו אפשרות גישה לאתר ואחסון נתונים למטרתשליפה מהירה ומדויקת.

המידע הודות המשתמש נקלטים על ידי פורום )ראו כנ"ל( ונשלחים לבסיסי המידע אשר מאכסנים אותו. בשעת הצורך, כאשר תתקבל בקשה לעימות המידע מול בקשה מהמשתמש,

דוגמת שם משתמש וסיסמה, המידע "יישלף" מבסיס הנתונים לצורך אימות ונתינת אישור למבקש הבקשה.

בתחום הלמידה וההדרכה קיים שימוש רב כאשר משתמשים בתכונות אלו לשמירת נתונים, כגון: תוצאות ניסויים, ציוני תלמידים ומידע השוואתי. הדוגמא הנפוצה ביותר לשימוש בכתיבה וקריאה

.HighLearn, דוגמת e-Leariningבבסיסי נתונים במערכות לימודיות, מתבצעת על פלטפורמות אפליקציית רשת זו מבוססת על רשימת פרטי סטודנטים וקריאת הנתונים הרלוונטיים אודותם,

13

sub parsedata{ read)STDIN, $in, $ENV{'CONTENT_LENGTH'}(; @in = split)/&/, $in(;

 foreach $i )0 .. $#in(

{ $in[$i] =~ s/\+/ /g;  $in[$i] =~ s/%)..(/pack)"c",hex)$1((/ge;  )$key, $val( = split)/=/,$in[$i],2(;  $in{$key} .= '\0' if )defined)$in{$key}((;  $in{$key} .= $val; } }

דוגמת אופציית האלפון המוטמעת בה. בתגובה לנתונים אלו אתר האפליקציה מציג את הנתונים ומאפשר ביצוע בהן שינויים ואכסון מחדש, חזרה לבסיס הנתונים.HTMLפורמט

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

: 14PHPבאמצעות שפת תכנות בשם

הסבר:: הגדרת משתנים לערכים הנחוצים לשם התחברות לבסיס נתונים.2-4שורות : הגדרת שם המשמש, סיסמה ושם בסיס הנתונים.5שורה : בחירת בסיס הנתונים הספציפי מתוך השרת ושליחת הודעה אם לא ההתחברות6שורה

נכשלה.: כתיבת הנתונים המוכנסים לטבלה חדשה בבסיס הנתונים7-10שורות : סגירת בסיס הנתונים.11שורה

ניתן להציג נתונים משתנים בזמןCGI בעזרת תוכנות – הצגת תוכן הכולל עדכונים בזמן אמת אמת ולבצע עליהם מניפולציות שונות, דוגמת השוואת זמנים בין נקודות קצה, הפעלת מנגנונים

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

במשחקי אינטרנט אינטראקטיביים, כאשר הסביבה משתנה בהתאם לאינטראקציות המשתמש, בעדכון חומרים לימודיים כאשר מדובר באתרי מידע, ובנתינת נתונים בזמן אמת כאשר מדובר

בניסויים מדעיים ומחקרים.

14 Gowans, D. )2001(. Gowannet.com: PHP/MySQL Tutorial. Retrieved December 29, 2009 from http://www.freewebmasterhelp.com/tutorials/phpmysql/1

14

?<$user="username;"

$password="password;"$database="database;"

mysql_connect)localhost,$user,$password(;

@mysql_select_db)$database( or die) "Unable to select database"(;$query="CREATE TABLE contacts )id int)6( NOT NULL auto_increment,first varchar)15( NOT NULL,last varchar)15( NOT NULL,phone varchar)20( NOT NULL,mobile varchar)20( NOT NULL,fax varchar)20( NOT NULL,email varchar)30( NOT NULL,web varchar)30( NOT NULL,PRIMARY KEY )id(,UNIQUE id )id(,KEY id_2 )id((";mysql_query)$query(;mysql_close)(;?<

תגובתיות בזמן אמת מעניקה מרחב של אפשרויות כאשר מדובר במימוש בסביבה לימודית. , תגובתיות בזמן אמת לתרגולים15כנזכר בפסקה הקודמת, פיתוח אפליקציות מבוססות משחקים

". שימוש בתכונה זו על ידיCHEATעל ידי מתן פתרונות ותשובות ומענים חיים, דוגמת " המורים/מדריכים יכולה להיות ממומשת להסברים מפורטים על מבנה החומר הנלמד, בניית תרגולים אינטראקטיביים ושמירה על קשר מיידי. שימושים התלמידים במימוש הטכנולוגיה,

מעניקה סביבה אינטראקטיבית ישירה, אשר מציגה תגובתיות מידית למעשה הלימודי, יכולות למידה שונות, כאשר מדובר כגישה של למידה מפירוק התהליך או מהבנת השלם ושמירה על

קשר מיידי עם המורה/מדריך למתן מענה לבעיות ועזרה.

: דוגמא מטרת השורות הבאות הן לקבל את זמן השרת שממנו אנו מקבלים את המידע, בזמן בקשת

.ASP16תוצאות השאילתה. השפה שבא מתבצעת בקשת הזמן היא

הסבר:: מבצעות בקשת זמן מהשרת.1-4שורות .HTML: מציגות את הזמן המתקבל על ידי השרת הדף 6-12שורות

: CGI שימושים נוספים ליישומי

שונים, דוגמת יישומים המבוססים על CGI יישומי – יצירה, קריאה ועריכת קבצים חיצוניים , מסוגלים ליצור קבצים חדשים מסוגים שונים, להציג את המידע המוכל בהם ואףPHPשפת

לבצע המרות קבצים מסוג מסוים של קובץ, לסוג אחר .

15 Feronato, E. )2009(. Emanueleferonato.com: MAGORMIN. Retrieved January 4, 2009 from http://www.emanueleferonato.com/2009/03/19/magormin-an-old-php-based-game/16 W3schools.com: ASP.NET Examples. Retrieved December 29, 2009 fromhttp://www.w3schools.com/aspnet/showasp.asp?filename=demo_pageload

15

script  runat="server"<Sub Page_Load   lbl1.Text="The date and time is " & now)(End Sub>/script<

>html<>body<>form runat="server"<>h3<>asp:label id="lbl1" runat="server" /<>/h3<>/form<

היכולת של שפות התכנות להציג מגוון רחב של קבצים ולקבל נתונים– שימוש במנועי סריקה. 17מהם, הופך את יישומים אלו כבסיס חזק למנועי סריקה

מסוגלות CGI שפות התכנות בטכנולוגיית – שליטה על אפליקציות בצד משתמש הקצה לבצע שליטה על יישומים חיצוניות בעזרת פקודות מותאמות וסנכרון בין השרת לבין יישום של

. WINDOWS Media Player ו-Word-MSמשתמש הקצה. דוגמת

בעזרת אינטראקציה בין קבצי גרפיקה מוכנים ושילוב פרמטרים– שליטה ויצירת גרפיקה , ניתן ליצור תצוגות גראפיות שונות, דוגמת גרפים, תרשימים, שרטוטיםCGIבאחת משפות ה-

. 18ומפות

20 19וחסרונות יתרונות: 6 פרק

:יתרונות

צורך ואין דפדפן כל על לעבוד היכולת היאCGIה- בתחום הבולט היתרון – בהתקנה צורך אין. 1

חיצוניים. פלאגינים מצריך ולא ההפעלה מתוכנת נפרד בלתי חלק יהיה המקרים להתקינו. ברוב

כל אש" או "חומת בעקבות גישה בבעיות יתקל לאCGIה- המקרים ברוב – חופשית גישה. 2

אחר. אבטחה מחסום

הקצה שמשתמשי חיצוניים ופרמטרים קיים במידע דינאמי שימוש מאפשרCGI – דינאמיות. 3

לו. מזינים

כשיקול אותם לקחת ולא מוגבל בערבון אליהם להתייחס , ישCGIה- חסרונות למרות כי לציין חשוב

רבים ובמקריםCGIה- בתחום פיתוחים ועוד עוד ליעל ממשיכה הטכנולוגית משמעותי. ההתקדמות

כיום. הקיימות האלטרנטיבות פני על בו להשתמש עדיף יהיה

:חסרונות

הוא הלחץ שהוא יוצר על שרת האינטרנט. בשפות כמוCGI– החיסרון הבולט של ה-איטיות . 1PERL אשר נפוצות בכתיבת תסריט קוד CGIקיים צורך של השרת לפרש את הקוד. בכל פעם

שהקוד רץ, למרות היותו פשוט וקצר, עליו להיבנות מחדש בכל פעם ע"י המערכת.

17 Peter L. K. )2003(. Uses of PHP: What Can PHP Do. Retrieved January 5, 2010 from

http://www.daaq.net/old/php/index.php?page=uses+of+php&parent=what+is+php18 Vaswan, V. )2008(. Zend Developer Zone: Dynamically Creating Graphs and Charts with PHP and GDChart. Retrieved January 5, 2010 from http://devzone.zend.com/article/377419 CGI_drawbacks. Retrieved December 29, 2009 fromhttp://www.webhelpinghand.com/CGI_drawbacks.asp20 Why Use CGI?. Retrieved December 29, 2009 fromhttp://webdesign.about.com/od/cgi/a/aa021599.htm

16

מפעיל לחץ על השרת בכל פעם שהואCGI – תסריט קוד ה-לחץ על השרת. 2 פועל וגורם לזמן תגובה איטי יותר מאחר והוא משתמש בזיכרון השרת ומקורות

מידע נוספים. הכתוב בצורה לקויה עלול לגרום לכשל בטחוניCGI – ממשק ממשק לקוי. 3

יכול לבצעCGIחמור ולהזיק לשרתים ולאתרים השונים. מאחר ותסריט קוד ה- פקודות רבות )ואף לעקוף מחסומים רבים כגון חומות אש בקלות( הוא עלול לגרום

לנזק רב למחשב. יהיה יעיל במקרים בהם נשלח מידע לשרת ונרצה לראות אותוCGI – פונקציונליות מוגבלת. 4

יהיו כלים הרבה יותר שימושייםASP וה-PHP, בשימושיו האחרים ה-HTMLמוצג בעמוד וחזקים.

, דרוש "מתרגם" )PERL, כגון CGI – בחלק מהשפות בהם כותבים תסריט קוד חוסר ניידות. 5interpreterמותקן על השרת עליו נמצא הקוד ובכך התניידותו לשרתים שאינם תומכים )

בשפות מסוג זה נמנעת. עלולות להיות מוגדרות במערכת בדרכים שונות. לעיתיםPERL – שפות מסוג בעיות הגדרה. 6

יהיו נגישות יותר ולעיתים מוגבלות מאוד ובכך פוגעות בניידות הקוד. קשה לאתר שגיאותPERL – במקרים רבים בהם נעשה שימוש בתסריט קוד איתור שגיאות. 7

כאשר התסריט קוד לקוי.500בקוד. לעיתים רבות האינדיקציה לכך מופיעה כשגיאה מס' כמות הפרמטרים בהם ניתןGET – כאשר עושים שימוש בשיטת כמות מידע מוגבלת. 8

קיימת נגישות גדולה יותר לכל הפרמטריםASP או PHPלעשות שימוש מוגבל, בעוד שב-הקיימים בעמוד.

מאחרCGI – ממשקי דפדפן מבוססי קוד יעבדו טוב יותר מאשר שימוש בשרת. 9והם נעזרים במעבד המחשב ולא בשרת האינטרנט.

עסוקים, זה יכול להאט יוצא לפועל, תהליך חדש מתחיל. עבור אתרי רשת CGI כל פעם שמסמך של API הוא להשתמש ב את השרת באופן ניכר. פתרון יעיל יותר, אך גם קשה יותר ליישום

JAVAהוא להשתמש ב- . פתרון נוסף שהולך ונהיה פופלורי NSAPI אוISAPI השרת, כגוןSERVELTS.

21 היסטוריה:7 פרק

)CERN )Centre d’Etudes et de Recherche Nucleaires פותח ע"יHTTPDשרת רשת נטשה פיתוח שלCERN הפך לשם הגנרי של שרתי רשת רבים. כאשר HTTPDניבה, שוויץ. ’בז

HTTPD הנושא נלקח ע"י , Software Development Group of the National Center for Supercomputing Applications

)NCSA(.

21 Bekman, S., & Cholet, E. )2003(. Practical mod_perl. O'Reilly & Associates. http://modperlbook.org/index.html

17

NCSA פיתחה גם MOSAIC– הדפדפן הראשון, אשר מפתחיו עמדו בראשית כתיבת ה , Netscape

(Netscape Communications Corporationהיא החברה שפיתחה את הדפדפן המסחרי ,) הראשון פעולתה תרמה רבות להצלחתה הראשונית של האינטרנט.

,MOSAICמסמכים סטאטיים ותמונות המיוצגות ע"י שרת הציגל להעלות ולו יכ HTTPDהדבר . גרם למידע להיות נגיש להרבה יותר אנשים לעומת, לדוגמא, לשלוח לכל אחד דוא"ל. יחד עם

משתשמים צריכהשל במהרה לפתח מנועי חיפוש. פירוש הדבר אילצוזאת, ריבוי משאבי הרשת אתשורת חיפוש, כאשר לשרת צריכה להיות יכולת לאבד יכולת לטעון נתונים, כגון:הלהיות

מתאים. התוכן את הנתונים המוזנים ולהחזיר מנועי חיפוש היו הראשונים, אשר מסמכים, הופיעו כמסמך טקסט שלא היה ניתן לשינוי.תחילה

ניגשו לשרת הרשת ושינו ישירות את שורת הקוד שלו. שיכתוב הקוד לא היה שימושי במיוחד ואזNCSA פיתחו נוהל Common Gateway Interface.-ה CGI הומצא רשמית לשימוש של WWW הפך לסטנדדרט עבור תהליך גישה של יישומים חיצוניים לשרתיCGIממשק ה-. 1993בשנת

שהיא)IETF ) Internet Engineering Task Force ידי - עלהרשת ועבור יצירת מידע דינאמיאינטרנט.ה של התפתחותקהילה גדולה של רשת בינלאומית, שעוסקת ב

. מסיבה זו, התיקייה ממנהלטבלאות בינאריות ותורגמו Cהראשונים נכתבו בשפת CGIנוהלי . כיום, רוב השרתיםcgi-src ותיקיית המקור נקראה בשם cgi-bin נקראה בשם GCIחולצו תוכנות

.cgi-bin והיא נקראית CGIמגיעים עם תיקיה מוגדרת עבור תוכנות ה –

: CGI להלן ציר הזמן של פיתוח שפות התכנות הנפוצות של

1972 - C זוהי שפת תכנות עיקרית של.NET לצורך תכנות תוכנותכלליות סביבה למטרות UNIX.22 לשימוש במערכות הפעלה Dennis Ritchieבאמצעות האינטרנט, שפותחה על ידי

1980 - C ++ של תכנות, אשר סטאטי להקלדה, "ספונטנית", מהדרתכלליות זוהי שפה למטרות (, זאת אומרת מתרגמת בין שפת מחשב אחת לשפת מחשב אחרת, הינה שפת'קומפיילר')

פרדיגמה. השפה נחשבת לרמה בינונית, כאשר כוללת שילוב של שפת תכנות ברמה גבוהה עם ובאה לשפר את1979 החל משנת Stroustrup Bjarneשפת תכנות ברמה נמוכה. פותחה על ידי

השם הוחלף לידוע1983". בשנת C with Classes. בתחילה כונתה כ- "Cהשפה הקודמת לה 2003.23 קיבלה סטנדרטיזציה שחודשה ב-1998. בשנת ++Cכיום כ-

1987- Perl )Practical Extracting and Report Langage(זוהי שפת תכנות דינאמית – סקריפט לצורך הקלת עיבוד הדוחות. השפהUnix ברמה גבוהה, שפותחה עבור כלליותלמטרות

. מאז השפה עברה תיקונים ושינויים רבים,NASA – מנהל מערכות של Larry Wallפותחה על ידי כך שהפכה להיות השפה הפופולרית בין המתכנתים. לארי וול ממשיך לפתח את השפה. הגרסא

Perl 6.0.24הבאה שלה נקראת

22 C - Programming language. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/C_)programming_language(23C++. )2009(. Wikipedia. Retrieved January 8, 2010 from: http://en.wikipedia.org/wiki/C%2B%2B24 Perl. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/Perl

18

1991 –Visual Basic )VB(זוהי שפת תכנות מדור השלישי וסביבת פיתוח משולבת - מודל, שהוא ממשק בינארי סטנדרטי לתוכנות מורכבות. השפהCOMממייקרוסופט עבור תכנות

BASIC.25נחשבת יחסית קלה ללמידה ולשימוש הודות המאפיינים הגראפים ומורשת

1994 – Java כשפה אינטראקטיבית בשם 1991 ב-וסדהזוהי שפת תכנות שנ Oakאך לא , . גJava שוכתבה מחדש לאינטרנט וקיבלה שם חדש הידוע כיום כ- 1994הייתה מוצלחת. בשנת

, אך יותר פשוטה. השפה מפורשת ומתאימה++C'אווה היא שפה פרוצדורלית קלאסית קרוב ל- Sun Microsystems.26 ותכנתנים אחרים של James Goslingלכול מחשב. פותחה על ידי

עתידיים התפתחות כיווני:8 פרק

CGI 27 התפתחות

חדשה ( בגרסאC++ 09- תכנה הנראה )ככלC++0x תכנות שפת נמצאת פיתוח בשלבי כיום

תוספים מספר יכלול החדש הקיימת. התקן++C שפת ( שלISO / IEC 14882) התקן את שתחליף

הדוחות את לרוב , המאגדת++C של החיצוניות הסטנדרתיות הספריות את וירחיב העיקרית לשפה

תכלול . בנוסף, השפה2009 בנובמבר מפורסם היה השפה פיתוח על האחרון הטכניים. הדוח

מחשב תוכנית של הריצה סביבת שבו תהליך - הואGarbage collection)באנגלית: זבל" "איסוף

תוכנת של מפיצול ביצוע תוצאות של צורך(, שרשור עוד בהם שאין האובייקטים את מהזיכרון מנקה

בפועל. משימות יותר או שתיים בין מחשב

28 הגלישה אינטראקטיביות נושא התפתחות

Web 2.0.עידן של שילוב "מנצח" של יכולות טכנולוגיות מתקדמות ותכנים מושקעים ואיכותיים – ,Web 2.0הוא מונח המתייחס לדור שני של השירותים באינטרנט. הטכנולוגיה בה בנויים

האתרים החדשים מאפשרת גישה אינטראקטיבית לגולשים, ולמעשה מאפשרת לגולש לבנותולהרחיב את תכני האתר.

Web 2.0חשוב לציין כי הטכנולוגיה לא עומדת במקום. לכן, העידן הבא שלאחר עידן הרשת ה- הואWeb 3.0 הוא רשת המידע הכוללת באינטרנט. Web 3.0. החידוש העיקרי ב - Web 3.0הוא

אשר תאפשר למחשבים, מכונות,(Semantic Webמונח אשר בא להציג רשת סמנטית ) המידע באותה דרך בה אנשים בשר ודם ומיישמים את קריאתורובוטים אשר סורקים את הרשת

עדיין נמצא בשלבי פיתוח וככל הנראה יקח לא מעט זמן עד Web 3.0קוראים אותו. רשת שנראה את התוצר הסופי.

25 Visual Basic. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/Visual_Basic26 Sureau, D. )2009(. History of programming language and ther evolution. Retrieved January 8, 2010 from: http://www.scriptol.com/programming/history.php27 C++. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/C%2B%2B0x28 Web 3.0. )2009(. Guru4rent. Retrieved January 8, 2010 from:http://www.guru4rent.com/new_article_1.asp

19

PHP (PHP Hypertext Preprocessor)אינטרנט יישומי לתכנות בעיקר המיועדת תסריט שפת - היא

השפות אחת היאPHP מפרש. שפת באמצעות האישי המחשב על לרוץ יכולה השרת, אך בצד

(Interpreter) מפרש ישPHP באינטרנט. לשפת דינמיים אתרים לתכנות במיוחד שנבנו הראשונות

של במשאבים שימוש , תוךPHP( ב-Scripts) תסריטים להריץ ותפקידו בשרת המותקן זה בשם

נוספות, צד-שרת לטכנולוגיות נתונים(. בדומה ובסיסי הקבצים )למשל: מערכת השרת מחשב

בטפסים לטפל נתונים, וכך מבסיסי נתונים בשילוב דינמייםWeb דפי ליצור ניתןPHP באמצעות

PHPכשפה לתכנות יישומי אינטרנט בצד השרת, (. clients) מהמשתמשים שנשלחים ובמידע יוצרת תוכן,PHPאינה עוסקת במשימות שמתבצעות בצד הלקוח, כלומר בדפדפן. בהתאם לכך,

, תמונה או כל אובייקט אחר, ושולחת אותם אל הדפדפן, אך היא אינה מפענחתHTML ,XMLדף משלבת בדפים,PHP. באופן דומה, שפת (5 )ראה: תרשים אותם – זו מלאכתו של הדפדפן

, לביצוע במחשב הלקוח )קודFlash ורכיבי VBScript או JavaScriptבמידת הצורך, תסריטי PHPאינו מגיע אל מחשב הלקוח, אלא רק הפלט שיצר קוד זה(. בין הכלים המקבילים לה ניתן

.ASP, JSP, Javaלמנות את נמצאות בשלבי פיתוח. השינויים העיקרייםPHP 5.0 במקביל ל- PHP 6.0כיום גרסאות של

.Unicode(, תמיכת safe mode, מצב בטחוני )Magic Quotes29כוללים את ההסרה של

PHP של הפעולה : אופן5 תרשים

29 Magic quote. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/Magic_quotes

20

סיכום

כמו המחשבים תקשורת של הטכנולוגית ההתפתחות בתהליך מרכזי גורם מהווה CGI טכנולוגיית

גרמו אשר המרכזיים הגורמים בפרט. אחד האינטרנט רשת ובתחום כיום אותה מכירים שאנו

העולם עם ומהירה ישירה לתקשורת הצורך ימיינו, הוא של גודל לסדר להתפתח זו לטכנולוגיה

, הואCGI –ה בהתפתחות נוסף מרכזי האינטרנט. גורם רשת של תוכנה על להשפיע והצורך החיצון

תקשורת רשתות של בנייתם את מאפשרות ומתעצמות, אשר ההולכות והרשת המחשוב יכולות

משתמש אינטראקציות של הגדול העומס עם להתמודד מסוגלות יותר. אשר וחזקות יותר גדולות

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

והעתיד. הנוכחית הטכנולוגיה להתפתחות מקביל כתהליך התבצע בעבודה המצוינות התכנות שפות התפתחות

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

הטכנולוגיה להתפשטות רבות , תרמוC וPERL שפת הטכנית, דוגמת מהן, בתפיסתם חלק של

בתחום אלו שפות שימושי ימינו. כיום של האינטרנט רשת משתמשי של הכלל לנחלת והפיכתה

נתונים, פורומים, מאגרי מערכות גדול, כאשר גודל בסדר מושרש הממוחשבת הלמידה מערכות

המוכנה הלמידה תהליך את אינטראקטיביות, הפכו רשת ואפליקציות דינמיים אינטרנט דפי

אינטראקציה ומאפר ואחד וישנים חדשניים למידה תהליכי המיישם בתוכן אלו, לעשיר במערכות

בנפרד. תלמיד לכל הלמידה סביבת בין

יותר בעל עתיד על , מצביעיםWEB 3.0 במושג וגובר ההולך והשימוש הקוד שפות התפתחויות

הסטטים, המאופיינים אינטרנט דפי של מלאה והעלמות מוחלט התבססות לא אם CGI, שימושי

. WEB 1.0 המושג ידי על

21

ביבליוגרפיה

. מתוך אתר:2009 דצמבר, 29(. ויקפדיה. נדלה 2009ממשק שער משותף. )http://he.wikipedia.org/wiki/Common_Gateway_Interface

, מתוך2010, ינואר 8. נדלה Embedded web programming(. פילוסופיית 2009מסדי נתונים. )http://vlib.eitan.ac.il/DB_web_prog/chdata4a.htmאתר 'איתן:

. מתוך אתר:2010 ינואר, 8נדלה . HTTP(. פרוטוקול 2008שכבת האפליקציה )יישום(. )http://vlib.eitan.ac.il/tcpip/http.htm

Bekman, S., & Cholet, E. )2003(. Practical mod_perl. O'Reilly & Associates. http://modperlbook.org/index.html

C - Programming language. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/C_)programming_language(

C++. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/C%2B%2B0x

CGI_drawbacks, Retrieved December 29, 2009 fromhttp://www.webhelpinghand.com/CGI_drawbacks.asp

Feronato, E. )2009(. Emanueleferonato.com: MAGORMIN. Retrieved January 4, 2009 from http://www.emanueleferonato.com/2009/03/19/magormin-an-old-php-based-game/

Free internet media. )2007(. Uses of cgi scripts. Retrieved December 29, 2009 from http://www.cgiworks.net/uses-of-cgi-scripts.php

Kyrnin, J. )2009(. About.com Guide: Using Forms and CGI. Retrieved December 29, 2009 from http://webdesign.about.com/od/cgi/ss/aa022299.htm

Garshol, M., L. )1999(. How the web works: HTTP and CGI explained. Retrieved December 29, 2009 from http://www.garshol.priv.no/download/text/http-tut.html

Gowans, D. )2001(. Gowannet.com: PHP/MySQL Tutorial. Retrieved December 29, 2009 from http://www.freewebmasterhelp.com/tutorials/phpmysql/1

Gundavaram, S. )1996(. CGI programming on the World Wide Web. CA: O’Reilly.

22

http://oreilly.com/openbook/cgi/ch02_03.html

Gundavaram, S., Guelich, S., & Birznieks, G. )Eds.(. )2000(. CGI programming with Perl. CA: O'Reilly.

Grahm, I. )1996(. Web/HTML documentation and developer's Resource. CGI documentation. Retrieved December 29, 2009 from http://www.utoronto.ca/web/CGI/cgi1.html

Magic quote. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/Magic_quotes

Marshall, J. )2002(. CGI made Relay easy. Retrieved January, 8, 2010 from: http://www.jmarshall.com/easy/cgi/

Mcobject: Embedded Web Server Reference Designs. Retrieved January 8, 2010 from http://www.mcobject.com/embedded_web_server_refs

NCSA HTTP. )1998(. The Common Gateway Interface. Retrieved December 29, 2009 from http://hoohoo.ncsa.illinois.edu/cgi/overview.html

Peter L. K. )2003(. Uses of PHP: What Can PHP Do. Retrieved January 5, 2010 from http://www.daaq.net/old/php/index.php?page=uses+of+php&parent=what+is+php

Perl. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/Perl

Sol, S. )2009(. Server-side scripting. Retrieved January, 8, 2010 from http://www.wdvl.com/Style/Scripting/WebWare/Server/

SpaceTrace. Retrieved January 8, 2010 from http://www.spacetrace.com/forum/viewtopic.php?t=3851

Sureau, D. )2009(. History of programming language and ther evolution. Retrieved January 8, 2010 from: http://www.scriptol.com/programming/history.php

Vaswan, V. )2008(. Zend Developer Zone: Dynamically Creating Graphs and Charts with PHP and GDChart. Retrieved January 5, 2010 from: http://devzone.zend.com/article/3774

Visual Basic. )2009(. Wikipedia. Retrieved January 8, 2010 from:http://en.wikipedia.org/wiki/Visual_Basic

23

Visual Prolog. )2009(. CGI applications in visual prolog: basics. Retrieved January 8, 2010 from: http://wiki.visualprolog.com/index.php?title=CGI_Applications_in_Visual_Prolog:_Basics

Web 3.0. )2009(. Guru4rent. Retrieved January 8, 2010 from:http://www.guru4rent.com/new_article_1.asp

Why Use CGI?, Retrieved December 29, 2009 fromhttp://webdesign.about.com/od/cgi/a/aa021599.htm

W3schools.com: ASP.NET Examples. Retrieved December 29, 2009 fromhttp://www.w3schools.com/aspnet/showasp.asp?filename=demo_pageload

נספחים:

קבוצתי סיכום.1

הכוללת הצוות אנשי בין מישורים: תאימות במספר אותנו איתגרה הקבוצתית העבודה במקורות מעמיקה חקירה החומר, כלל משותפים. חקר מקורות וסנכרון הנושא חקר

המושג להגדרת החומר, בנוסף ניסוחי בבחינת חפפו דווקא באתרים, שלאו המצויים

בשפות ושימושים יישומים של גדול למרחב כולל שם היא CGI שונות. הגדרת בדרכים

למצוא ניתן מאפייניו. כיום כלל את מאגד אינו המדויק במושג השימוש כך תכנות, נוכח

של הפעולה בחקר התעמקות ידי התהליכים, על פריסת מבחינת יותר מדויקות הגדרות

המושג הגדרת של בהקשר רבות להתלבטויות שגרמה השונות, עובדה התכנות שפות

ההתפתחות. שפות הזמן ציר הכנת במהלך התעוררו נוספות יישומיו. סוגיות והצגת

הרחבה ההתפתחות מה, לפני זמן עליהם, נוצרו מתבססת הטכנולוגיה אשר התכנות

הסופית רחב. התוצאה באופן התפשטותם את שאפשרה השרתים טכנולוגיית של

העיקריים, במבט היישומים נהיר, בציון בצורה המושגים הגדרת קביעת אחרי התקבלה

זו. טכנולוגיה של והיתרונות המגבלות ובהגדרת הזמן ציר ובחינת

אישיים סיכומים.2

חוטין אנה

פרקים את בחרתי ולכן CGI של הפעולה אופן לגבי עניין בי עורר העבודה תחום

מידע הרבה מספק שהחומר טכנולוגיה. גיליתי לגבי וללמוד להתעמק כדי הראשונים

ניכר חלק לוקחתCGI קצה. שטכנולוגיית למשתמש האינטרנט שרת בין התקשורת על

. HTML לדפי דינאמי מידע העברת בתהליך

24

ולשתף צריך עם משוב לתת זמין היה מהצוות אחד הצוות, כל עם יחד לעבוד נהניתי הצוות חברי שאר מול העבודה של הצוות. ההתנהלות חברי שאר עם הנושא על מידע

התפקידים, כמו: חלוקת העבודה של התהליכים על לדון צורך שיש בכך אתגר היוותה

בעבודה. חלקים ותיקון הכתיבה סגנון על הדעות בזמן, תיאום הטיוטה הגשת

צד-שרת שפות בין ההבדל מבצע, עלCGI שממשק התהליכים על רבות למדתי

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

העבודה את לכתוב מנת על מעמיק תחקיר לעשות ושיש קריאה חומר הרבה שיש

להיקף פרק של סיכום את למקד היה הניכר יבין. הקושי אחד שכל פשוטה בשפה

והמושגים מעמיקה קריאה אחריCGI מאחורי שעומד המנגנון את וברור. הבנתי תמציתי

עיקרהטכנולוגיה. של המערכתית בהבנה עזרו לפני לי ידועים היו שברובם הטכנולגיים העבודה היה לחפש את חומר ממקור מהימן והשוואה עם שאר המקורות. כמו-כן,

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

מבוא, מהי טכנולוגיה, כיצד) שכתבתי הפרקים של העריכה על רבות עבדתי הטכנולוגיה פועלת, שימושים בפרוטוקולים( ועריכה של שאר הפרקים. מצאתי את

עצמי משקיעה הרבה זמן בעבודה על כתיבה נאותה וברורה שכל אחד יצליח להבין. היה חשוב לי להבהיר את הנושא באופן מעניין ושוטף מבלי להכביד על הקורא

במושגים טכנולוגיים. הקפדתי על רישום הביבליוגראפי בגוף העבודה כהפניה ובסוףהעבודה כרשימה מלאה של כל המקורות שהוזכרו בגוף העבודה.

בוכולטר אמיר

מידע מקורות וחלוקת משותף לימוד של שיתופית בצורה התבצע הקבוצתי החקר תהליך שלה טכני זה, מבנה בעידן ושימושיה הטכנולוגיה מהות את להבין היה הראשוני זמינים. השלב

רבים באתרים המצויים מידע מקורות בעזרת התבצע ועתידיים. החקר קיימים ושימושים

ושרתיםPHP עורכי הקבוצה, כמו חברי של האישיים המחשבים על הקיימים ובכלים באינטרנט

ברשת. זמינים במובן לשימוש יישומים ונלמדו הטכנולוגיה תפקוד על מפורט מושג החקר, נוצר תהליך במהלך

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

הנכללות התכנות בשפות . השימושיםCGI התיבות ראשי הגדרת תחת פורמאלית בצורה

בדרך ומפורקים הכלל נחלת נכללים שרתים ויכולות אינטראקטיביים אתרים פיתוח בסביבת

למרכיבי, הנושא פירוק לידי הביא החקר תהליך עצמן. עצם התכנות שפות של להגדרות כלל

.HTML דף גבי על המוגמר ולפלט עצמו היישום לרמת ועדHTTP – ה מפרוטוקול כגון, תקלות תקשורת בעיות עם להתמודד ודרכים מושגים כמה לגבי חידד העבודה תהליך

או זו בשפה תמיכה והקשרי שרתים ובעיותHTTP – ה בשכבת לקויה מתקשורת הנובעות

שפות לעוד חשיפה עם יותר רחבה מקצועית שפה ובנה הקל אתרים, הדבר אחרת. כמפתח

CGIדלה, כגון הייתה בהן , שהתמצאותי PERL. השונים ויישומיה הטכנולוגיה תפקוד של בעיקרה, הבנה לפרויקט, הייתה האישית תרומתי

CGI טכנולוגיית לפירוק מתייחסת הכתובה טכני, מעשי. עבודתי ובאופן תיאורטי באופן טכנולוגיית היא CGI הטכנולוגיה. טכנולוגיית וליישומי השכבות שבע מודל גבי על לתפקודה

הוא השכבות שבע מודל גבי על התפקוד תקינות וחשיבות לשרתים קצה מחשב בין תקשורת

25

שלמות את מקנה וחלק חלק בכל הטכנולוגיה. החשיבות מהות של תקין בתפקוד עיקרי גורם

המשתמש. ידי על שנשלחה השאילתה פי על תקין פלט ומעניקה התקשורת הלמידה, בתחום שימוש בהן שנעשה בעיקריים בהיבטים התמקדה היישומים נושא חקירת מתקדמים שהוזכרו מהסוגים ולמדריך/מורה. יישומים לתלמיד מעניקה שזו יתרונות בין וביחס

מתקדמת האישיים והמחשבים השרתים של החומרה טכנולוגיית כאשר ענק" במיוחד ב"צעדי

היתרונות את שהוזכרו, המנצלים התכנות בשפות ושדרוגים שיפורים מהיר. נעשים בקב

המחובר מחשב בכל שגורה תהיה זו שטכנולוגיה נראה אף מציעה. בעתיד שהחומרה החדשים

את יעניק המחשוב" אשר "ענן טכנולוגיית על ניכר באופן קיום מדובר כאשר לרשת, בעיקר

אישיים. מחשבים עם שרתים תקשורת של המקסימאלי והניצול התקשורת יכולת

גורליק מיקי

העיקרית מהסיבה רבים חששות אותי הציפוCGIה- בתחום החקר עבודת את התחלתי בטרם

של ומסובך. ההבנה מאיים סינית, מאוד מאשר מובן כפחות לי נראה התיכנות שתחום

פועל כיצד לי הבהיר משותף שער ממשק לתחום שלהן והקשר התכנות שפות של הסמנטיקה

דינאמיים. ניתוח, פיענוח יישומים על בדגש האינטרנט רשת פועלת שמסביבו המכניזם

והחסרונות היתרונות בהבנת בהמשך לי עזרו ופרלC בשפת דינאמיים סקריפטים בין והשוואה

אחד כל העבודה בתחום. במהלך ומנוגדות שונות לגישות והסיבות משותף שערי ממשקי של

תרם אחד וכל משותף היה החקר והבין. תחום מצא, סינן אותו מהידע ותרם עזר הצוות מחברי

מקורסי )ולחששותי העבודה לכתיבת כתבו. במקביל אותם בנושאים הקבוצה חברי לשאר

VB בתכנות העוסקים הדרכה בסרטוני להשתמש הבא( החלטתי בסמסטר הצפויים התכנות סביבות בהבנת רבות כן גם לי הוסיפו אלו הבא, סרטונים לסמסטר כהכנהNET. בסביבת

כה עד שהיה המאיים הפחד את וניפצו האינטרנט ברשת משותף שער בממשקי דינאמיות

רבות לי תרם זה מסוג טכני בנושא והמחקר שההתעסקות מרגיש התכנות. אני לתחום מקושר

אותנו לימד וגם שונים ופרוטוקולים תיכנות, ממשקים שפות בעתיד ואלמד אחקור בו באופן

לעיכול. וקשה טכני, מורכב מידע לשתף ומקוריות חדשות דרכים למצוא כקבוצה

פרנקל אנסטסיה

לעבוד, הולכים אנחנו מה על מושג שום לי היה בנושא, לא בחרה שלנו קבוצה כאשר שמתוך ארוך, הבנתי הלא הזמן בכלל. במשך להתחיל וממה לחפש לכתוב, מה מה

לפחות או בעבר הזה בנושא רקע להם ממני, היה יותר בנושא מבינים אנשים הקבוצה

וכו'. למינהים תכנות , שפותHTTPאליו, כמו: סקריפטים, הקשורים מושגים מכירים מבחינת מסובך ודי מורכב די היה מזה, הנושא לגמרי. יתרה חדש היה הנושא אישית לי

"להרגיש" אותה. אך קשה עובדת. היה הטכנולוגיה ואיך הטכנולוגיה היא מה ההבנה

לא מסוימת. בחיי מיומנות ניסיון של הדבר, עיניין עם התעסקות של עיניין בעיני, זהו

וכד'. אתרים התכנות, בניית בעולם התעניינתי הבנתי מיד לא כי לציין חשוב לדעתי הנושא, אך על מידע המון החקר, מצאתי במהלך

לא ללמוד הצטרכתי ומורכב, לכן רחב די הזו הטכנולוגיה המידע. עולם את להצליב איך

ש"עוטפים" הנושאים/ מושגים על גם פעילותה, אלא ואופן עצמה הטכנולוגיה על רק

26

אפשרות מהטכנולוגיה, אין בלתי-נפרד חלק שמהווים המושגים את להבין אותה. מבלי

עצמה. הטכנולוגיה את להבין הטכנולוגיה. מהות את לעצמי מתארת וכן שגמו שקיבלתי להגיד יכולה לעכשיו, אני נכון כי טוענת אני עדיין הוירטואלי. אך בעולם שלה המשמעות ואת תפקידה את מבינה אני

בעולם יותר ולהתעסק להתעמק שאתחיל לאחר טוב יותר הנושא את להבין יוכל ניאהזה.

ריםסבה העבודה, נתנה כל במשך בי תמכה שלי, אשר לקבוצה להודות חייבת אניובהתחשבות. בסבלנות

במשך ולהתעסק להיות אצטרך בו חדש עולם בשבילי פתח אכן לסיכום, הנושא יותר או פחות אותי שהכניסה בכך תרמה העבודה כי אומרת להיום, אני הלימודים. נכון

הזה. לתחום

העבודה חלוקת.3

תרומה לעבודהשם הסטודנטמבוא, מהי טכנולוגיה?, כיצד הטכנולוגיה פועלת?, אנה חוטין

שימושים בפרוטוקולים, עריכת המסמך והמצגתניתוח טכנולוגי ע"פ מודל שבע השכבות, אמיר בוכולטר

יישומים ושימושים, סיכום ועיצוב מצגת עובדCGIיתרונות וחסרונות וכיצד תסריט קוד מיקי גורליק

אנסטסיהפרנקל

היסטוריה וכיווני התפתחות עתידיים

נספחים:

דוגמאות לפורומים מבוססיPHPו PERL- - http://www.ajaxline.com/10-best-free-php-forum-scripts

יצירת גרפים בעזרתPHP - http://www.aditus.nu/jpgraph

עובד?CGIכיצד תסריט קוד

, אפשרPERL או C ובהנחה שיודעים שפת תכנות, כמו cgi-binבהנחה ויש גישה לספריית לעשות כמה ניסיונות עם 'ממשק שער משותף'. מספר דוגמאות שידגימו כיצד תסריט קודים

:HTMLפשוטים של ממשק שער משותף עובדים. למשל- תסריט קוד הפשוט ביותר של עמוד

27>html< >body< >h1<Hello H.I.T!>/h1<>/body<>/html<

:Cואותו נשווה לתסריט קוד 'ממשק שער משותף' פשוט, כך היא תכתב בשפת

, היא יכולה להתבצע.simplest.cgi, תחת השם cgi-binלאחר ששם התסריט קוד נשמר בספריית . הפקודה יוצאת הדופן!Hello H.I.Tכפי שניתן לראות כל שהתסריט קוד עושה הוא לרשום

:Content-type הפקודה ,;)"printf)"Content-type: text/html\n\nהיחידה בתסריט קוד הינה: text/html\n\nהיא הראשונה שתשלח לדפדפן ותיכתב בכל תסריט קוד ממשק שער משותף. כל

, יראה כך:PERLזמן שלא תכתוב פקודה זו, הדפדפן ידחה את התסריט קוד. אותו תסריט קוד

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

קוד, הפלט יהיה שונה. אחרי הכל, אם נרצה להפעיל את אותו פלט שוב ושוב, עדיף יהיהלהשתמש בעמוד סטטי. כך יראה תסריט קוד דינאמי:

28

#include >stdio.h<

int main)({ printf)"Content-type: text/html\n\n"(; printf)">html<\n"(; printf)">body<\n"(; printf)">h1< Hello H.I.T!>/h1<\n"(; printf)">/body<\n"(; printf)">/html<\n"(; return 0;}

#! /usr/bin/perlprint "Content-type: text/html\n\n";print ">html<>body<>h1< Hello H.I.T!";print ">/h1<>/body<>/html<\n";

#include >stdio.h<

int incrementcount)({ FILE *f; int i;

f=fopen)"count.txt", "r+"(; if )!f( { sleep)1(; f=fopen)"count.txt", "r+"(; if )!f( return -1; }

fscanf)f, "%d", &i(; i++; fseek)f,0,SEEK_SET(; fprintf)f, "%d", i(; fclose)f(; return i;}

int main)({ printf)"Content-type: text/html\n\n"(; printf)">html<\n"(; printf)">body<\n"(; printf)">h1<The current count is: "( printf)"%d>/h1<\n", incrementcount)((; printf)">/body<\n"(; printf)">/html<\n"(; return 0;}

ניצור קובץ נוסף בעל אותו שם,count.cgi לאחר ששמרנו את התסריט קוד בספריה תחת השם , גם אותו נשים תחת אותה הספרייה. למעשה בכל0 ובו תהיה רק הספרה TXTאך עם סיומת

יהיה דינאמי0. קובץ הטקסט עם הספרה 1פעם שנפתח את התסריט קוד המספר יעלה ב- היא זו שמשנה את )(incrementcountוישתנה בכל פתיחה של התסריט קוד. פקודת ה-

1המספר בקובץ הטקסט. היא למעשה פותחת את הקובץ, קוראת את המספר, מוסיפה לו אנשים יגשו אל אותו הקובץ בו2ומשנה את הקובץ. שיטה זו אינה חסרת בעיות, במקרה בו

- תהיה ערך השגיאה1 התסריט קוד לא יעבוד. אם בניסיון השני שוב לא מצליח המשתמש, זמניתאותו המשתמש יקבל חזרה )אשר תיקרא ותתורגם לשגיאת מערכת רגילה(.

:CGIתהליך

29

CGI : תהליך6 תרשים

האינטרנט. ברשתHTTP פרוטוקול דרך האינטרנט לשרת מתחבר הדפדפן.1

.CGI קוד תסריט את מפעילה אינטרנט שרת תוכנת.2

שרת. של אחרים חומרה במשאבי משתמשCGI קוד תסריט.3

בתוכו. דינאמי מידע עםHTML דפי יוצרCGI קוד תסריט.4

CGI של עיבוד אחריHTML דפי של תוצר את לדפדפן שולח אינטרנט שרת תוכנת.5

30

CGI : תוכנית7 תרשים

31