SlideShare a Scribd company logo
1 of 24
Apache Server Side Includes Ionuț Ştirban
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"-->
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
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
SYNTAX <!--#directive parameter="value"--> no space between <!-- and # directives: config include echo exec parameters: virtual, file cmd, cgi timefmt
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.
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>
Example News Liverpool threw the Premier League title race wide open once more with a resounding 3-1 win over Manchester United at Anfield.
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"-->
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>
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
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
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
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" -->
DEMO
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"-->
CONFIG EXAMPLES <!--#configsizefmt="bytes" -->  <!--#configtimefmt="%y/%m/%d" --> <!--#configerrmsg="we have a problem."
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}" -->
Advanced SSI techniques Conditional<!--#if expr='"$DOCUMENT_URI" = "/ssi.shtml"' -->in ssi <!--#elifexpr='"$DOCUMENT_URI" = "/exec.shtml"' -->in exec <!--#else -->in neither<!--#endif -->
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.
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
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
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/
QA

More Related Content

Similar to Ssi

Your First ASP_Net project part 1
Your First ASP_Net project part 1Your First ASP_Net project part 1
Your First ASP_Net project part 1Biswadip Goswami
 
What I brought back from Austin
What I brought back from AustinWhat I brought back from Austin
What I brought back from AustinLisa Adkins
 
CIS 451: Introduction to ASP.NET
CIS 451: Introduction to ASP.NETCIS 451: Introduction to ASP.NET
CIS 451: Introduction to ASP.NETwebhostingguy
 
introduction to web technology
introduction to web technologyintroduction to web technology
introduction to web technologyvikram singh
 
How do speed up web pages? CSS & HTML Tricks
How do speed up web pages? CSS & HTML TricksHow do speed up web pages? CSS & HTML Tricks
How do speed up web pages? CSS & HTML TricksCompare Infobase Limited
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Finalematrix
 
Introduction to Web Programming with Perl
Introduction to Web Programming with PerlIntroduction to Web Programming with Perl
Introduction to Web Programming with PerlDave Cross
 
Create a web-app with Cgi Appplication
Create a web-app with Cgi AppplicationCreate a web-app with Cgi Appplication
Create a web-app with Cgi Appplicationolegmmiller
 
JSP diana y yo
JSP diana y yoJSP diana y yo
JSP diana y yomichael
 
Krazykoder struts2 ui_tags
Krazykoder struts2 ui_tagsKrazykoder struts2 ui_tags
Krazykoder struts2 ui_tagsKrazy Koder
 

Similar to Ssi (20)

Controls
ControlsControls
Controls
 
Vb.Net Web Forms
Vb.Net  Web FormsVb.Net  Web Forms
Vb.Net Web Forms
 
Your First ASP_Net project part 1
Your First ASP_Net project part 1Your First ASP_Net project part 1
Your First ASP_Net project part 1
 
CGI Presentation
CGI PresentationCGI Presentation
CGI Presentation
 
What I brought back from Austin
What I brought back from AustinWhat I brought back from Austin
What I brought back from Austin
 
CIS 451: Introduction to ASP.NET
CIS 451: Introduction to ASP.NETCIS 451: Introduction to ASP.NET
CIS 451: Introduction to ASP.NET
 
HTML5 Fundamentals
HTML5 FundamentalsHTML5 Fundamentals
HTML5 Fundamentals
 
introduction to web technology
introduction to web technologyintroduction to web technology
introduction to web technology
 
HTML5
HTML5HTML5
HTML5
 
How do speed up web pages? CSS & HTML Tricks
How do speed up web pages? CSS & HTML TricksHow do speed up web pages? CSS & HTML Tricks
How do speed up web pages? CSS & HTML Tricks
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
 
Introduction to Web Programming with Perl
Introduction to Web Programming with PerlIntroduction to Web Programming with Perl
Introduction to Web Programming with Perl
 
ASP_NET Features
ASP_NET FeaturesASP_NET Features
ASP_NET Features
 
Before start
Before startBefore start
Before start
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Create a web-app with Cgi Appplication
Create a web-app with Cgi AppplicationCreate a web-app with Cgi Appplication
Create a web-app with Cgi Appplication
 
WCF - In a Week
WCF - In a WeekWCF - In a Week
WCF - In a Week
 
JSP diana y yo
JSP diana y yoJSP diana y yo
JSP diana y yo
 
Krazykoder struts2 ui_tags
Krazykoder struts2 ui_tagsKrazykoder struts2 ui_tags
Krazykoder struts2 ui_tags
 
CSS
CSSCSS
CSS
 

Recently uploaded

The Last Leaf, a short story by O. Henry
The Last Leaf, a short story by O. HenryThe Last Leaf, a short story by O. Henry
The Last Leaf, a short story by O. HenryEugene Lysak
 
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
 Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatmentsaipooja36
 
An Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge AppAn Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge AppCeline George
 
How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17Celine George
 
....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdfVikramadityaRaj
 
An Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxAn Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxCeline George
 
size separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticssize separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticspragatimahajan3
 
Capitol Tech Univ Doctoral Presentation -May 2024
Capitol Tech Univ Doctoral Presentation -May 2024Capitol Tech Univ Doctoral Presentation -May 2024
Capitol Tech Univ Doctoral Presentation -May 2024CapitolTechU
 
The basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxThe basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxheathfieldcps1
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽中 央社
 
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Celine George
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project researchCaitlinCummins3
 
Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Mohamed Rizk Khodair
 
PSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptxPSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptxMarlene Maheu
 
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...Nguyen Thanh Tu Collection
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the lifeNitinDeodare
 
Navigating the Misinformation Minefield: The Role of Higher Education in the ...
Navigating the Misinformation Minefield: The Role of Higher Education in the ...Navigating the Misinformation Minefield: The Role of Higher Education in the ...
Navigating the Misinformation Minefield: The Role of Higher Education in the ...Mark Carrigan
 

Recently uploaded (20)

The Last Leaf, a short story by O. Henry
The Last Leaf, a short story by O. HenryThe Last Leaf, a short story by O. Henry
The Last Leaf, a short story by O. Henry
 
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
 Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
 
An Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge AppAn Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge App
 
How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17
 
Word Stress rules esl .pptx
Word Stress rules esl               .pptxWord Stress rules esl               .pptx
Word Stress rules esl .pptx
 
....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf
 
Mattingly "AI and Prompt Design: LLMs with Text Classification and Open Source"
Mattingly "AI and Prompt Design: LLMs with Text Classification and Open Source"Mattingly "AI and Prompt Design: LLMs with Text Classification and Open Source"
Mattingly "AI and Prompt Design: LLMs with Text Classification and Open Source"
 
An Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxAn Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptx
 
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
Operations Management - Book1.p  - Dr. Abdulfatah A. SalemOperations Management - Book1.p  - Dr. Abdulfatah A. Salem
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
 
size separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceuticssize separation d pharm 1st year pharmaceutics
size separation d pharm 1st year pharmaceutics
 
Capitol Tech Univ Doctoral Presentation -May 2024
Capitol Tech Univ Doctoral Presentation -May 2024Capitol Tech Univ Doctoral Presentation -May 2024
Capitol Tech Univ Doctoral Presentation -May 2024
 
The basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxThe basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptx
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
 
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project research
 
Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).
 
PSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptxPSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptx
 
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the life
 
Navigating the Misinformation Minefield: The Role of Higher Education in the ...
Navigating the Misinformation Minefield: The Role of Higher Education in the ...Navigating the Misinformation Minefield: The Role of Higher Education in the ...
Navigating the Misinformation Minefield: The Role of Higher Education in the ...
 

Ssi

  • 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