2. What are server side includes? SSI (Server Side Includes) are directives that are placed in HTML pages, and evaluated on the server while the pages are being served. They let you add dynamically generated content to an existing HTML page, without having to serve the entire page via a CGI program, or other dynamic technology. Example:<!--#echo var="SERVER_NAME"-->
3. How do Server Side Includes work? When the client requests a document from the SSI-enabled server, specified document is scanned by the server for the SSI code elements and carry's out the required actions based on the code element
4. Configuration To permit SSI on your server, you must have the following directive in srm.conf: AddType text/x-server-parsed-html .shtmlor AddType text/html .html In the access configuration file (access.conf) that dictate what type of SSI directives you can place in your HTML document you must have: Options Includes ExecCGI or Options IncludesNoExec
6. Includes You can include a file using: <!--#include virtual="/includes/ssi.txt" --> <!--#include file="ssi.txt" --> "Include virtual" should be used when the path to the document is given relative to the document root. The "Include File" argument is used when the path to the document we want to include is given relative to the shtml file itself.
7. Example <html> <head><title>Include example!</title></HEAD> <body> <h3>News</h3> <!--#include file="news.txt" --> </body> </html> news.txt: <p>Liverpool threw the Premier League title race wide open once more with a resounding 3-1 win over Manchester United at Anfield.</p>
8. Example News Liverpool threw the Premier League title race wide open once more with a resounding 3-1 win over Manchester United at Anfield.
9. Echo The echo directive returns the value of special SSI variables as well as other environment variables The only parameter to this directive is var, whose value is the name of the variable you wish to echo. Format:<!--#echo var="var name"-->
10. Example <html> <head><title>Echo example!</title></head> <body> <h3>Welcome to my server at <!--#echo var="SERVER_NAME"--></h3> Your ip is <!--#echo var="REMOTE_ADDR"--> <br /> Date: <!--#echo var="DATE_LOCAL"--> <br /> Your are using <!--#echo var="HTTP_USER_AGENT" --> </body> </html>
11. Example Welcome to my server at students.info.uaic.ro Your ip is 92.86.84.57Today is Sunday, 06-Mar-2011 19:25:27 EET Your are using Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15
14. Exec The exec command simply executes a program, script or a shell command on the server. It takes two formats "Exec CMD" which is used to run a command and "Exec CGI" which can be used to execute a script. <!--#exec cmd= "ls" --> <!--#exec cgi= "counter.pl.cgi" -->
16. Config In addition to being able to config the time format, you can also config two other things: if you want to change the error message to something else, you can do so with the errmsg attribute to the config element:<!--#configerrmsg="[This is a message error]" --> you can config the format in which file sizes are returned with the sizefmt attribute:<!--#configsizefmt="bytes"-->
18. Advanced SSI techniques Using the set directive to set variables for later use: <!--#set var="name" value="Ronaldo" --> <!--#set var="modified" value="$LAST_MODIFIED" --> <!--#set var="cost" value="100" --> <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" -->
20. WHEN TO USE SSI? The decision of when to use SSI, and when to have your page entirely generated by some program, is usually a matter of how much of the page is static, and how much needs to be recalculated every time the page is served.
21. ADVANTAGES viewing the document source doesn't reveal their use they are easier and faster to develop (and to maintain) than cgi decrease the chance of introducing errors when changing information
22. DISAVANTAGES it can be quite costly for a server to continually parse documents before sending them to the client enabling SSI creates a security risk