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 | აცხადებს პირობითი ბლოკის დამთავრებას. | იხილე ზედა მაგალითი. |
იხილეთ აგრეთვე
[რედაქტირება | წყაროს რედაქტირება]რესურსები ინტერნეტში
[რედაქტირება | წყაროს რედაქტირება]- Apache mod_include Reference (ინგლისური)
- Apache SSI Tutorial (ინგლისური)
- Server-Side Includes Tutorial (ინგლისური)
- Plain-English Guide to SSI (ინგლისური)
- Alex's SSI Tutorial დაარქივებული 2008-01-13 საიტზე Wayback Machine. (ინგლისური)
- Kavoir SSI Framework დაარქივებული 2008-01-01 საიტზე Wayback Machine. (ინგლისური)
- SSI-Developer, Apache Server Side Includes (ინგლისური)