חנות און ליין לטכנאים

«חזרה לאינדקס המונחים

CGI

הגדרה קצרה

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

אטימולוגיה

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

הסבר מורחב

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

חשיבות ויישום

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

תרחיש שימוש נפוץ: משתמש ממלא טופס "צור קשר" באתר. כאשר הוא לוחץ "שלח", הנתונים נשלחים לשרת האינטרנט. השרת מפעיל סקריפט CGI (לרוב ב-Perl או Python) המקבל את נתוני הטופס, מאמת אותם, ושולח אותם למייל של מנהל האתר או מאחסן אותם במסד נתונים, ולאחר מכן מחזיר למשתמש הודעת אישור.

אנלוגיה או דוגמה פשוטה

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

מה זה לא? (בידול והבחנה)

טעויות נפוצות

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

10 שאלות ותשובות נפוצות

שאלה: מהם ראשי התיבות של CGI?
תשובה: CGI הם ראשי תיבות של Common Gateway Interface.

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

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

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

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

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

שאלה: אילו שפות תכנות נפוצות עם CGI?
תשובה: שפות תכנות רבות יכולות לשמש עם CGI, אך הנפוצות ביותר הן Perl, Python, C/C++ ו-Shell Scripting.

שאלה: מה ההבדל העיקרי בין CGI ל-FastCGI?
תשובה: ההבדל העיקרי הוא ש-CGI מפעיל תהליך חדש לכל בקשה, בעוד FastCGI שומר על תהליכים פעילים וממוחזרים, ובכך משפר את הביצועים.

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

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

«חזרה לאינדקס המונחים