Server Side Includes

Server Side Includes (SSI) არის მარტივი სერვერული სკრიპტული ენა რომელიც პრაქტიკულად მარტო web ისთვისაა ღირებული. როგორც სახელი მიგვანიშნებს ძირითადი
დანიშნულება ამ ენისა არის ერთი ფაილის შიგთავსისი მეორეში ჩამატება,
როდესაც ვებ სერვერი ამ უკანასკნელს დაამუშავებს და მას კლიენტს გაუგზავნის. 
მაგალითად ფაილის შიგთავსი (.html, .txt, ა.შ.) რომელიც რაიმე ყოველდღიურად განახელებად ინფორმაციას
შეიცავს შესაძლებელია ვებ გვერდში შემდეგი ბრძანებით მოვათავსოთ:
 <!--#include virtual="../news.txt" -->
ასეთი სახის შიგთავსის მოთავსება მოსახერხებელია მაგალითად ნავიგაციის
მენიუებისათვის და საერთოდ როდესაც რამე შიგთავსი რამოდენიმ-გან/ჯერ უნდა
იქნას გამოყენებული. მაგალითად apache ვებ სერვერს საწყისი კონფიგურაციით
ასრულებს SSI დირექტივებს .shtml or .shtm
გაფართოებების ფაილებში. რაღა თქმა უნდა შეიძლება apacheს ისე დაკონფიგურირება
რომ სხვა გაფართოებების ფაილებშიც მოხდეს SSI დირექტივების შესრულება. 
შეიძლეაბ ითქვას რომ SSI პატარა, ავტომატიზირებული დავალებებისათვის არის
მოსახერხებელი. თუ საჭიროა უფრო რთული დამუშავება, perl-ს, php-ს, asp-ს ა.შ. ვერ
ავუვლით გვერდს.

 მარტივი სინტაქსი 
SSI ს აქვს მარტივი სინტაქსი <!--#directive parameter=value parameter=value -->. ეს დირექტივები მოთავსებულია HTML კომენტარებს შორის, რათა იმ შემთხვევაში თუ SSI არ არის აქტივირებული ამ გვერდისთვის, კოდში არსებული დირექტივები არ გამოჩნდნენ საიტზე.

 დირექტივები 
 ძირითადი დირექტივები 

  დირექტივა
  პარამეტრები
  აღწერა
  მაგალითი
  include file, direct or virtual  ეს არის ყველაზე ხშირად გამოყენებული დირექტივა, რომელიც საშუალებას გვაძლევს ერთი დოკუმენტის შიგთავსი მოვათავსოთ მეორე დოკუმენტში.  file ან virtual პარამეტრი მიუთუთებს  ფაილზე (HTML გვერდი, ტექსტური ფაილი , სკრიპიტ, ა.შ.) რომლის შიგთავიც მოთავსებულ უნდა იქნას დოკუმენტში, სადაც გვხვდება ეს დირექტივა. პარამეტრი file მითუთებს ფაილის ფარდობით მდებარებოაზე აქტუალურ ფალითან მიმართებაში;  პარამეტრი  virtual კი ფაილის აბსოლუტურ მდებარეობას დოკუმენტის ფესვიდან. <!--#include virtual="header.html"--> exec cgi ან cmd ეს  დირექტვია ასრულებს  პრგრამას, სკრიპტს  ან shell-ის ბრძანებას  სერვერზე. პარამეტრუ cmd parameter მიუთუთებს ბრძანებას სერვერზე; პარამეტრი cgi მიუთითებს ბილიკს  CGI სკრიპტისკენ. SSI სკრიპტის PATH_INFO და QUERY_STRING  პარამეტრები გადაეცემა CGI სკრიპტს. სასურველი "include virtual"ის გამოყენებას "exec cgi"ის ნაცვლად. <!--#exec cgi="/cgi-bin/foo.cgi"-->or<!--#exec cmd="ls -l"--> echo var
  ეს  დირექტივა აჩვენებს მითითებული HTTP გარემოს ცვლადის შიგთავსს.  მაგალითად HTTP_USER_AGENT, LAST_MODIFIED, და HTTP_ACCEPT. <!--#echo var="REMOTE_ADDR" --> config timefmt, sizefmt, ან errmsg ეს დირექტივები მიუთითებენ თარიღის, დროის, ფაილის ზომისა და შეცდომის ტექსტის (მაგალითად თუკი SSI ბრძანების შესრულება ვერ მოხერხდა) ფორმატს. <!--#config timefmt="%y %m %d" -->or<!--#config sizefmt="bytes" -->or<!--#config errmsg="SSI command failed!" --> flastmod ან fsize file ან virtual  პირველი დირექტივა აჩვენებს მითითებული ფაილის ის ბოლო მოდიფიცირების დროს, მეორე კი მითითებული ფაილის ზომას. ფაილების მითითება ხდება file-ის ან virtual-ის მეშვეობით. <!--#flastmod virtual="index.html"-->or<!--#fsize file="script.pl"--> printenv   ეს დირექტივა ბეჭდავს ყველა ცვლადის სიას და მათ მნიშვნელობებს. ეს სია შეიცავს ასევე გარემოსა და მომხმარებლის მიერ გამოცხადებულ ცვლადებს. მას არა აქვს ატრიბუტები. <!--#printenv -->

 რთული დირექტივები 

  დირექტივა
  პარამეტრები
  აღწერა
  მაგალითი
  if expr
  პირობითი ბლოკის დასაწყისი <!--#if expr="${Sec_Nav}" --><!--#include virtual="secondary_nav.txt" --><!--#endif -->
  elif expr ისევე როგორც სხვა ენებში, აცხადებს შემდეგ პირობით ბლოკს. <!--#if expr="${Sec_Nav}" --><!--#include virtual="secondary_nav.txt" --><!--#elif expr="${Pri_Nav}}"><!--#include virtual="primary_nav.txt" --><!--#endif -->
  else
   იგივე მნიშვნელობა რაც სხვა პროგრამულ ენებში. <!--#if expr="${Sec_Nav}" --><!--#include virtual="secondary_nav.txt" --><!--#else --><!--#include virtual="article.txt" --><!--#endif --> endif

   აცხადებს პირობითი ბლოკის დამთავრებას.
  იხილე ზედა მაგალითი.


 იხილეთ აგრეთვე 
 PHP
 ASP
 JSP
 ESI (Edge Side Includes)

რესურსები ინტერნეტში
 Apache mod_include Reference 
 Apache SSI Tutorial 
 Server-Side Includes Tutorial 
 Plain-English Guide to SSI 
 Alex's SSI Tutorial  
 Kavoir SSI Framework  
 SSI-Developer, Apache Server Side Includes 

კატეგორია:პროგრამირების ენები