# Server Side Includes

### מתוך ויקיפדיה, האנציקלופדיה החופשית

יש לך הודעות חדשות (השווה לגרסה הקודמת).

Server Side Includes (עברית: הכללות צד-שרת), או בראשי-תיבות SSI, היא שפה המפורשת על שרת דפי האינטרנט, שנועדה להפיכת דפי HTML סטטיים למעט יותר דינאמיים. מטרתה של SSI אינה להפוך דפי HTML ליישומי צד-שרת מלאים, כמו אלה הנכתבים ב-ASP, ב-PHP ובשפות דומות, אלא לאפשר הכללת מידע דינאמי מהשרת בתוך דפי ה-HTML.

לדפי HTML שמוכללים בהם תגי SSI יש בדרך-כלל סיומת shtml או shtm. בשרת IIS נהוגה גם הסיומת stm.

## [עריכה] היסטוריה

SSI הופיעה לראשונה בשרת NCSA HTTPd, שממנו התפתח שרת אפאצ'י. שרת IIS של מיקרוסופט מממש את SSI באופן דומה לזה של NCSA HTTPd על-ידי רכיב ISAPI בשם Ssinc.dll. בשרת אפאצ'י קיימות הוראות SSI נוספות על אלו שב-NCSA HTTPd וב-IIS, המכונות "xSSI" על-ידי קרן התוכנה אפאצ'י (כשהאות x היא קיצור של extended - הכללות צד שרת מורחבות). הן ממומשות כמודול הרחבה לשרת בשם mod_include.

## [עריכה] תחביר הוראות SSI

התחביר הכללי עבור הוראות SSI הוא:

<!-- # directive parameter1="value" parameter2="value" ... -->

הוראות SSI נמצאות בתוך הערות HTML, כך שאם הוראה מסוימת לא תעובד, או שהקובץ לא יפורש על־ידי מפרש ה־SSI כלל, לא יפריעו הוראות ה־SSI לתצוגה בדפדפן. כל הוראה מורכבת מהערת HTML, ובתוכה סימן סולמית (#), ומיד לאחריו סוג ההוראה, ואחריה רשימת הפרמטרים של ההוראה הכתובה בדומה לפרמטרים של תגי HTML - שם הפרמטר, סימן שווה, וערכו של הפרמטר.

### [עריכה] שרת NCSA HTTPd

תחביר SSI של שרת זה הוא התחביר הבסיסי, שעליו מתבבסים שאר היישומים של SSI.

#### [עריכה] הוראות ה-SSI

קיימות 6 הוראות SSI בשרת זה:

- 'הוראת include'

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

<!-- #include virtual="/virtual/path/to/file" -->

  - file - ולספק נתיב יחסי לקובץ שנמצא תחת התיקיה הנוכחית:

<!-- #include file="path/to/file" -->

- הוראת config

  הוראה זו יכולה לקבל שלושה פרמטרים:
  - errmsg - קובע הודעת שגיאה שתישלח ללקוח במקרה של כשל בפירוש הוראות הכללות צד-השרת.
  - timefmt - קובע את המבנה ודרך ההצגה של זמנים ותאריכים לשימוש עם הוראות echo ו-flastmode (ראה למטרה).
  - sizefmt - קובע את המבנה ודרך ההצגה של גדלי קוצים לשימוש עם הוראות echo ו-fsize (ראה למטרה).

- 'הוראת echo

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

- הוראת fsize

  הוראה זו מציגה את גדלו של הקובץ הניתן כפרמטר. גודל הקובץ יוצג בדרך שהוגדרה בהוראת ה-config (ראה למעלה). הפרמטרים זהים לאלו של הוראת include (ראה למעלה).

- הוראת flastmod

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

- הוראת exec

  הוראה זו מבצעת פקודת מעטפת פקודה (מדובר על מערכות מבוססות יוניקס) או תוכנית CGI, ומציגה את המידע שמחזירה התוכנית או הפקודה.
  הפרמטרים האפשריים הם:
  - cmd - במקרה זה תבצע מעטפת-הפקודה ‎/bin/sh את מחרוזת הקלט, ותציג את התוצאה. ניתן להשתמש במשתני הסביבה של SSI בפקודה זו.
  - cgi - פרמטר זה כולל נתיב וירטואלי לתוכנית CGI. במקרה זה התוכנית תבוצע, והקלט שלה יוכלל בדף הנוכחי (בדומה להוראת include).

#### [עריכה] משתני הסביבה של SSI

המשתנים שניתן להשתמש בהם בהוראות השונות הם משתני הסביבה של CGI (כגון, SERVER_NAME, QUERY_STRING, REMOTE_ADDR וכו'), ומספר משתנים נוספים, הכוללים את שם הקובץ הנוכחי (DOCUMENT_NAME), התאריך המקומי של השרת, ועוד.

### [עריכה] שרת IIS

מימוש SSI של שרת IIS כולל את אותן 6 הוראות של שרת NCSA HTTPd, והתאימות כמעט מוחלטת. גם רשימת משתני הסביבה כמעט זהה.

בשרת IIS, הוראת exec יכולה לבצע גם דפי ASP ויישומי ISAPI, ולא רק יישומי CGI בעזרת הפרמטר cgi.

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

### [עריכה] שרת אפאצ'י

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

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

- תוספות להוראות קיימות

  - להוראת config ניתן להוסיף גם פרמטר בשם echomsg שמגדיר הודעה שתוצג ללקוח במקרה של ניסיון להציג משתנה שאינו קיים בעזרת הוראת echo.
  - שימוש בפרמטר virtual של הוראת include מאפשר הכללת תסריטי CGI עם פרמטרים, ולא רק דפי HTML.

- הוראות חדשות

  שרת אפאצ'י מוסיף 6 הוראות חדשות על אלה שירש משרת NCSA HTTPd: הוראת printenv, הוראת set, והוראות if.
  - הוראות printenv מדפיסה את כל המשתנים המוגדרים ואת ערכיהם. אין היא מקבלת פרמטרים.
  - הוראת set מקבלת שני פרמטרים: var ו-value וקובעת את ערכו של המשתנה ששמו מוגדר ב-var לערך הכתוב ב-value. כלומר, השורה הבאה תקבע את ערכו של המשתנה name לערך joey.

<!-- #set var="name" value="joey" -->

  - הוראות if
    אלו הן 4 הוראות שמשמשות יחד ליצירת מבני תנאי. הוראת if פותחת תנאי, הוראות elif מגדירות מקרים נוספים מעבר לתנאי הראשוני, הוראת else מגדירה מקרה שבו אף-אחד מהתנאים לא התקיים, והוראות endif סוגרת את מבנה התנאי. לדוגמה:

<!-- #if expr='"$DOCUMENT_URI" = "/foo.shtml"' -->
file is foo.shtml
<!-- #elif expr='"$DOCUMENT_URI" = "/bar.shtml"' -->
file is bar.shtml
<!-- #elif expr='"$DOCUMENT_URI" = "/moo.shtml"' -->
file is moo.shtml
<!-- #else -->
I don't know which file is this
<!-- #endif -->

    קטע הקוד דלעיל יציג הודעה שונה בהתאם לשם הקובץ בו יושם.

## [עריכה] קישורים חיצוניים

- תיעוד עבור SSI בשרת NCSA HTTPd - באנגלית
- תיעוד עבור שרת IIS באתר מיקרוסופט.
  - SSI עבור IIS 5.0 - באתר Windows 2000 באתר מיקרוסופט
  - SSI עבור IIS 6.0 - באתר MSDN Library (פועל רק באינטרנט אקספלורר)
- אתר שרת אפאצ'י
  - אפאצ'י 1.3
    - המודול mod_include‏
    - ‏מדריך היכרות עם SSI
  - אפאצ'י 2.0
    - המודול mod_include‏
    - ‏מדריך היכרות עם SSI
  - אפאצ'י 2.2
    - המודול mod_include‏
    - ‏מדריך היכרות עם SSI

מקור: http://he.wikipedia.org../../../s/e/r/Server_Side_Includes_f01a.html

קטגוריה: טכנולוגיות צד-שרת

##### Views

- ערך
- שיחה
- גרסה נוכחית

##### קהילה

- שער הקהילה
- עזרה
- דלפק ייעוץ
- מזנון
- יצירת קשר
- ספר אורחים

##### חיפוש

##### שפות אחרות

- English
- Deutsch
- Polski
- Русский
- Svenska