xhtml apache מפת האתר דף ראשי

«
«
«
«
«
«
«
«
«
«
«
«
«
«

XSSI עקרונות  « SSI  « ראשי

מאמר 12: Webmonkey - עקרונות XSSI

12.1 הקדמה

XSSI היא חלק מאפאצ'י, תוכנה המאפשרת לדפדפנים לקבל את הדף שהם מבקשים.
מודול ה - mod_include) XSSI) מגדיר סט פקודות שאפאצ'י מנתח לאחר שהדפדפן ביקש את הדף, אך לפני שהדף נשלח אליו.

12.2 יתרונות

כל פקודת XSSI שכוללים בדף היא שקופה לדפדפן, שרואה רק את תוצאת ה - HTML.
תכונה זו מאפשרת לייצר דפים בצורה דינמית (ההבדל בין קוד XSSI לבין dynamic HTML הוא שקוד ה - XSSI הוא דינמי רק בזמן שהדף מבוקש, בעוד שדפי dynamic HTML יכולים עדיין להשתנות בזמן שמורידים אותם).
שלא כמו שפות scripting בצד הלקוח, כמו JavaScript, XSSI אינו תלוי ביכולות הדפדפן, כך שקוד ה - XSSI יכול לעבוד גם אם הדפדפן אינו באיכות טובה.
כמו כן, XSSI הוא זול מאד לשרת, בניגוד ל - CGI scripts. לכן, אין צורך לדאוג לגבי האטת השרת. בנוסף, ISP רבים שלא נותנים להריץ CGI script ירשו להריץ קוד XSSI בדף.

 

12.3 איך משתמשים ב-XSSI ?

הפורמט הבסיסי של פקודת XSSI הוא: <--element attribute="value" #--!>.

פקודות נוספות ב - XSSI:

12.3.1 פקודת echo
הפורמט: <--echo var="somevariable" #--!>.
לדוגמא לחץ כאן
פקודה זו מדפיסה את הערך של המשתנה כאילו הוא מודפס כחלק מ - HTML רגיל.

12.3.2 פקודות if, elif, else, endif

לדוגמא לחץ כאן
דוגמא נוספת:
<--if expr="test_condition" #--!>
     do what's here
<--elif expr="test_condition" #--!>
     do this instead
<--else #--!>
     do this one
<--endif #--!> 

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

אפאצ'י מעריך את התנאים הללו ואם הם בעלי ערך אמת מריצים את הקוד העוקב להם (אם יש הצהרות XSSI אחריהם), או מדפיסים (אם יש טקסט אחריהם).
תנאים אלו יכולים להיות מוצגים בצורות שונות.
למשל: אם במשתנה "election" נקבע הערך: "rigged"'
ל - <--"if expr="$election = rigged #--!> יהיה ערך אמת, אבל
ל - <--"if expr="$election = legit #--!> יהיה ערך שקר (false).
דרך יעילה לכתוב את הקוד הנ"ל הוא להשתמש ב - "/"', סביב למחרוזת אותה יש להתאים. זה אומר לאפאצ'י לנסות להתאים את המחרוזת כביטוי רגיל (regular expression).
בדוגמא הנ"ל: <--"/if expr="$election = /rig #--!> יתאים לכל ערך במשתנה "election" שמתחיל ב - "rig".

12.3.3 פקודת include

לדוגמא לחץ כאן
דוגמא נוספת: <--"include virtual="some-URL #--!>.
פקודה זו מכניסה תוכן של קובץ אחר לתוך הקובץ הנוכחי.

12.3.4 פקודת set

לדוגמא לחץ כאן
דוגמא: <--"set var="somevariable" value="the_value #--!> .
פקודה זו קובעת ערך במשתנה.

 

12.4 משתני XSSI

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

כדי לראות את הרשימה של ערכים של כל דפדפן יש לכלול את פקודת:<--"printenv #--!> שהפלט שלה הוא רשימת משתני הסביבה. הפלט שלה נראה כך:
(HTTP_USER_AGENT = Mozilla/4.0 [en] (WinNT; I
החלק הראשון (באותיות גדולות) הוא שם משתנה הסביבה, החלק השני (אחרי סימן ה - =) הוא הערך.

בקוד XSSI, המשתנה מצוין על פי שמו או בעזרת סימן $ לפניו. סימן זה חיוני כאשר לא ברור אם מדובר במשתנה או לא, למשל בפקודת echo:
<--"echo var="variable name #--!> , הדבר היחידי שעליו ניתן לבצע echo הוא משתנה (ולכן כתוב שם "var=") ולכן אינך זקוק ל- $.
מצד שני, במשפט include :
<--"include virtual="$daUrl #--!> עליך לציין את ה- $ כדי לציין ש- daUrl הוא משתנה.

להלן כמה ממשתני הסביבה השימושיים:

HTTP_REFERER
זהו העמוד שהיווה קישור לעמוד הנוכחי
HTTP_USER_AGENT
זה מתאר את הדפדפן שבשימוש. כך אנו מגישים עמודים שונים ל-navigator ול-explorer.
QUERY_STRING
אם לכתובת URL המבוקשת יש "?" וטקסט כלשהו בסופה, הטקסט מאוחסן במשתנה זה.
PATH_INFO
אם לכתובת URL המבוקשת יש ספריות חיצוניות בסופה, מידע זה מאוחסן במשתנה זה.

כמו כן, קיימים כמה משתני XSSI סטנדרטיים כגון:

DATA_GMT
התאריך והשעה (ניתן לפרמוט באמצעות פקודת config).
DOCUMENT_NAME
שם הקובץ של המסמך שהמשתמש מבקש.

 

12.5 מסקנה

XSSI יאפשר לך ליצור עמודי אינטרנט יציבים, מהירים ודינמיים.