[go: up one dir, main page]

შინაარსზე გადასვლა

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

რესურსები ინტერნეტში

[რედაქტირება | წყაროს რედაქტირება]
მოძიებულია „https://ka.wikipedia.org/wiki/Server_Side_Includes“-დან