SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Semelhante a Ssi

What I brought back from Austin
What I brought back from AustinWhat I brought back from Austin
What I brought back from Austin
Lisa Adkins
 
CIS 451: Introduction to ASP.NET
CIS 451: Introduction to ASP.NETCIS 451: Introduction to ASP.NET
CIS 451: Introduction to ASP.NET
webhostingguy
 
introduction to web technology
introduction to web technologyintroduction to web technology
introduction to web technology
vikram 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 Tricks
Compare 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 Final
ematrix
 
Introduction to Web Programming with Perl
Introduction to Web Programming with PerlIntroduction to Web Programming with Perl
Introduction to Web Programming with Perl
Dave Cross
 
Krazykoder struts2 ui_tags
Krazykoder struts2 ui_tagsKrazykoder struts2 ui_tags
Krazykoder struts2 ui_tags
Krazy Koder
 

Semelhante a 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
 

Último

Último (20)

Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 

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