• Like
Ssi
Upcoming SlideShare
Loading in...5
×
Uploaded on

 

More in: Education , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
320
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Apache Server Side Includes
    Ionuț Ştirban
  • 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
  • 5. SYNTAX
    <!--#directive parameter="value"-->
    no space between <!-- and #
    directives:
    config
    include
    echo
    exec
    parameters:
    virtual, file
    cmd, cgi
    timefmt
  • 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
  • 12. ECHO EXAMPLES
    <!--#echo var="DOCUMENT_NAME" -->
    <!--#echo var="DOCUMENT_URI" -->
    <!--#echo var="LAST_MODIFIED" -->
    <!--#echo var="REMOTE_USER" -->
    <!--#echo var="DATE_GMT" -->
    <!--#echo var="HTTP_ACCEPT_ENCODING" -->
    <!--#echo var="HTTP_REFERER" -->
    http://www.ssi-developer.net/ssi/ssi-echo.shtml
  • 13. Date
    <!--#echo var="DATE_LOCAL" -->
    Output:
    <html><body> Sunday, 06-Mar-2011 13:08:03 EET </body></html>
    <!--#configtimefmt="%A, %B %d, %Y" --> <!--#echo var="DATE_LOCAL" -->
    Ouput:
    Sunday, March06, 2011
  • 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" -->
  • 15. DEMO
  • 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"-->
  • 17. CONFIG EXAMPLES
    <!--#configsizefmt="bytes" -->
    <!--#configtimefmt="%y/%m/%d" -->
    <!--#configerrmsg="we have a problem."
  • 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}" -->
  • 19. Advanced SSI techniques
    Conditional<!--#if expr='"$DOCUMENT_URI" = "/ssi.shtml"' -->in ssi <!--#elifexpr='"$DOCUMENT_URI" = "/exec.shtml"' -->in exec <!--#else -->in neither<!--#endif -->
  • 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
  • 23. bibliography
    http://httpd.apache.org/docs/current/howto/ssi.html
    http://oreilly.com/openbook/cgi/ch05_02.html
    http://www.ssi-developer.net/ssi/
    http://www.wdvl.com/Authoring/SSI/Intro/index.html
    http://websitetips.com/ssi/
  • 24. QA