התייחסות למשתנים סביבתיים משותפים של ממשק שער (CGI)

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


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

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

בסופו של דבר, שפות תכנות שרתים כמו PHP ופייתון פותחו, אך בימים ההם, CGI היה כל מה שהיה. ובכל זאת, ל- CGI הייתה יכולת ייחודית: היא הייתה בלתי תלויה בשפה. אם השרת יכול להריץ את התוכנית, CGI יכול להתמודד עם זה. אז זו יכולה להיות תוכנית מורכבת C ++ או סקריפט פרל פרשני או כמעט כל דבר אחר.

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

משתנים

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

$ ENV {$ env_var}

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

להלן משתני ה- CGI ומה הם עושים:

AUTH_TYPE

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

CONTENT_LENGTH

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

סוג תוכן

המשתנה CONTENT_TYPE מכיל את סוג הקובץ המוחזר על ידי הבקשה. לדוגמה, אם מתבקש דף אינטרנט, המשתנה CONTENT_TYPE יוגדר לטקסט / html מסוג MIME..

GATEWAY_INTERFACE

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

HTTP_ACCEPT

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

HTTP_USER_AGENT

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

PATH_INFO

המשתנה PATH_INFO מכיל מידע נוסף שנראה לאחר שם הסקריפט CGI. לדוגמה, אם אתה מבצע את www.placeholder.com/cgi-bin/hello.pl/index.html, PATH_INFO עבור זה יהיו התווים שמגיעים אחרי שם ה- script של CGI או /index.html בדוגמה זו..

PATH_TRANSLATED

כשאתה מקליד כתובת של סקריפט CGI בדפדפן אינטרנט, אתה בדרך כלל מקליד נתיב וירטואלי הממופה למיקום פיזי בשרת. לדוגמה, אם אתה עובר אל http://www.somewebsite.com/cgi-bin/index.cgi ואתה שואל את המשתנה PATH_TRANSLATED, תקבל את הנתיב הפיזי בפועל. אם אתה נמצא בשרת יוניקס משותף, זה עשוי להיות /home/placeholder/public_html/cgi-bin/index.cgi.

קופון אירוח אתרים

זקוק לאירוח גישת CGI איכותית?
GreenGeeks כבש טוב מאוד במבחני המהירות והביצועים שלנו. הקוראים יכולים לחסוך עד 60% בתכניותיהם. השתמש בקישור הנחה מיוחד זה
להשיג את העסקה.

QUERY_STRING

מקובל לראות מידע על שאילתות שמצורף לכתובת אתר אחרי סימן השאלה. עבור כתובת האתר http://www.placeholder.com/cgi-bin/hello.cgi?name=Leroy&קריאה = אמת, בקשת QUERY_STRING תחזור בשם = לירוי&קריאה = מוחזר אמיתי.

REMOTE_ADDR

המשתנה REMOTE_ADDR מציג את כתובת ה- IP של מחשב הלקוח שמגיש את הבקשה. בעיקרו של דבר, REMOTE_ADDR נפתר REMOTE_HOST לכתובת IP.

REMOTE_HOST

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

REMOTE_IDENT

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

REMOTE_USER

שאילתת המשתנה REMOTE_USER תתן מידע על שם המשתמש של הישות המבקשת. זה תקף רק אם האימות מופעל.

REQUEST_METHOD

REQUEST_METHOD נותן את סוג בקשת HTTP שהושלמה וכוללת ערכים כמו GET, POST ו- PUT.

SCRIPT_NAME

אם במקום זאת אתה רוצה לקבל את הנתיב הווירטואלי של הסקריפט שמבוצע, אתה יכול פשוט לשאול את המשתנה SCRIPT_NAME. לדוגמה, אם תריץ את הסקריפט http://www.placeholder.com/cgi-bin/ping.sh ותחזיר את SCRIPT_NAME, תקבל את הנתיב הווירטואלי של הסקריפט או /cgi-bin/ping.sh.

שם שרת

המשתנים של SERVER_NAME נותנים את השם המלא של השרת שלך. לדוגמה, אם תשאל את המשתנה הזה, התוצאה תהיה שם התחום של האתר. לדוגמה, משהו כמו www.placeholder.com.

SERVER_PORT

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

SERVER_PROTOCOL

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

SERVER_SOFTWARE

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

אפאצ’י 2.4.25

סיכום

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

המשך קריאה ומשאבים

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

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

איזה קוד אתה צריך ללמוד?

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

איזה קוד אתה צריך ללמוד?
איזה קוד אתה צריך ללמוד?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map