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 აცხადებს პირობითი ბლოკის დამთავრებას. იხილე ზედა მაგალითი.

იხილეთ აგრეთვე[რედაქტირება]

რესრუსები ინტერნეტში[რედაქტირება]