+++ ȨÁ¦ÀÛ ¹ÙÀ̺í +++
ȨÁ¦ÀÛ ¹ÙÀ̺í ÀÌ »çÀÌÆ®´Â ÀÌ¿µÂù´ÔÀÇ »çÀÌÆ®¸¦ º¹¿øÇÑ °ÍÀÔ´Ï´Ù.
Untitled Document
Html
Dhtml
Css
Php
Asp
Cgi
Java Script
Java Applet
Multimedia
Win Tip
SSI
1. SSI¶õ?

SSI ´Â Server Side Includes ÀÇ ¾àÀڷμ­ ÀϹÝÀûÀÎ HTML ű׿ܿ¡ Ưº°È÷ È®ÀåµÈ ±â´ÉµéÀ» Á¦°øÇÑ´Ù. HTML¹®¼­´Â ºê¶ó¿ìÀú¿¡ º¸³»Á®¼­ Çؼ®ÀÌ µÇÁö¸¸ ÀÌ SSI´Â ¼­¹ö¿¡¼­ ¸ÕÀú parsing(Çؼ®)µÈ ÈÄ ºê¶ó¿ìÀú ·Î º¸³»Áø´Ù. SSI ÆÄÀϵéÀº ÀϹÝÀûÀÎ HTML ÇüÅÂ¿Í °°À¸¸ç ±âÁ¸ÀÇ HTMLÀÇ Å±׵éÀ» »ç¿ëÇÑ´Ù. ±×·¯³ª HTMLÀÇ Å±׿ܿ¡ SSI¿¡¼­ º°µµ·Î Á¦°øÇϴ ű×(SSI tag)µéÀ» »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, CGI¿¡¼­ »ç¿ëÇÏ´Â CGI ȯ°æº¯¼ö(Environment Variables)µéµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.


2. SSI¸¦ »ç¿ëÇϱâ À§ÇÑ ¼³Á¤ (APACHEÀ¥¼­¹ö ±âÁØ)

SSI¸¦ Æ÷ÇÔÇÏ´Â htmlÆÄÀÏÀÇ È®ÀåÀÚ´Â ±âº»ÀûÀ¸·Î .shtml·Î ÇÑ´Ù. (¼³Á¤½Ã¿¡ .htmlÈ®ÀåÀÚ·Î ÇÒ ¼öµµ ÀÖÀ¸³ª ÀÌ °æ¿ì¿¡ ¸ðµç .htmlÆÄÀÏÀÌ ºê¶ó¿ìÀú·Î °¡±âÀü¿¡ ¼­¹ö¿¡¼­ Çؼ®µÇ¹Ç·Î ½Ã½ºÅÛ¿¡ ¾µµ¥¾ø´Â ºÎÇϸ¦ ÁÙ ¼ö ÀÖ´Ù.)

httpd/conf µð·ºÅ丮ÀÇ access.conf ÆÄÀÏ¿¡¼­ ÇØ´ç µð·ºÅ丮ÀÇ Options ¿¡ Includes ¸¦ Æ÷ÇÔ½ÃŲ´Ù. ±×¸®°í srm.conf ÆÄÀÏ¿¡¼­

AddType text/html .shtml        
AddHandler server-parsed .shtml


¸¦ ¾ÕÀÇ #À» Á¦°ÅÇÏ¿© È°¼ºÈ­½ÃÅ°°Å³ª ¾øÀ¸¸é Æ÷ÇÔ½ÃŲ´Ù


3. ±âº»ÀûÀÎ ¹®¹ý

SSI¸¦ »ç¿ëÇϱâ À§ÇÑ ±âº»ÀûÀÎ Tag ¹®¹ýÀº

<!--#¿ä¼Ò ¼Ó¼º1="¼Ó¼º°ª1" ¼Ó¼º2="¼Ó¼º°ª2".... -->

ÀÇ ÇüÅÂÀÌ´Ù.

ÀÌ ÅÂ±× ÇüÅ´ HTML ÆÄÀÏ¿¡¼­ comment(ÁÖ¼®)¸¦ ³ªÅ¸³»´Â <!-- ÀÇ ÇüÅ·Π½ÃÀÛÇϸç, ÁÖÀÇÇÒ Á¡Àº ¼Ó¼º°ªÀº Åë»óÀûÀ¸·Î µû¿ÈÇ¥·Î µÑ·¯½ÎÀÌ°í, commentó¸®ÀÇ ³¡À» ³ªÅ¸³»´Â --> ¾Õ¿¡´Â ¹Ýµå½Ã °ø¹éÀ» µÐ´Ù. (SSIÀÇ ±¸¼º¿ä¼Ò¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â °ÍÀÓÀ» ³ªÅ¸³»±â À§Çؼ­ÀÓ)

Áß¿äÇÑ ¿ä¼ÒµéÀº ´ÙÀ½°ú °°´Ù.

3-1. config

ÀÌ ¿ä¼Ò´Â parsingÀÇ ¿©·¯°¡Áö Ãâ·ÂÇü½ÄÀ» Á¦¾îÇÑ´Ù. À¯È¿ÇÑ ¼Ó¼ºÀ¸·Î´Â,

errmsg :
ÀÌ°ÍÀÇ °ªÀº ¹®¼­°¡ parsingµÇ´Â µ¿¾È ¿¡·¯°¡ ¹ß»ýÇÒ¶§ Ŭ¶óÀ̾ðÆ®¿¡°Ô µÇµ¹·ÁÁÖ´Â ¸Þ½ÃÁöÀÌ´Ù.
¿¹) <!--#config errmsg="SSI Error Occurred while parsing!" -->

sizefmt :
ÀÌ°ÍÀÇ °ªÀº ÆÄÀÏÅ©±âÀÇ Ãâ·ÂÇü½ÄÀ» ÁöÁ¤ÇÑ´Ù. °ªÀ¸·Î ¹ÙÀÌÆ®´Â "bytes", Kb³ª Mb´Â "abbrev" ·Î ÁöÁ¤ÇÑ´Ù. ½ÇÁ¦ÀûÀÎ ÆÄÀÏÅ©±â´Â fsize ¿ä¼Ò¸¦ ÀÌ¿ëÇÑ´Ù.
¿¹) <!--#config sizefmt="bytes" -->

timefmt :
ÀÌ°ÍÀÇ °ªÀº ³¯Â¥ ½Ã°£ÀÇ Ãâ·ÂÇü½ÄÀ» ÁöÁ¤ÇÑ´Ù. strftime(3) C library ·çƾ¿¡ ÀÇÇØ »ç¿ëµÇ´Â ¹®ÀÚ¿­ÀÌ´Ù.
¿¹) ³â/¿ù/ÀÏ ¿äÀÏ. ½Ã:ºÐ AM KST Ãâ·ÂÇü½ÄÀ¸·Î ÇÏ·Á¸é
<!--#config timefmt="%y/%m/%d %a. %I:%M %p %Z" -->

3-2. echo
ÀÌ ¿ä¼Ò´Â CGI ȯ°æº¯¼öµéÀÇ °ª°ú SSI º¯¼öµéÀÇ °ªÀ» Ãâ·ÂÇÑ´Ù.
(CGIȯ°æº¯¼ö¿¡ ´ëÇؼ­´Â "CGI±âÃÊ" ÆäÀÌÁö ÂüÁ¶. SSIº¯¼ö´Â ¾Æ·¡ ÂüÁ¶)

ÀÌ°ÍÀÇ ¼Ó¼ºÀº var ÀÌ¸ç ¼Ó¼º °ªµéÀº SSIº¯¼öµéÀÌ´Ù.
¿¹) ¹®¼­ÀÇ ÃÖÁ¾ ¼öÁ¤ÀÏÀ» Ãâ·ÂÇÒ ¶§
<!--#echo var="LAST_MODIFIED" -->

ÇöÀç ³¯Â¥¸¦ ÇöÁö½Ã°¢À¸·Î Ãâ·ÂÇÒ ¶§
<!--#echo var="DATE_LOCAL" -->

Ŭ¶óÀ̾ðÆ®ÀÇ ºê¶ó¿ìÀú À̸§À» Ãâ·ÂÇÒ ¶§
<!--#echo var="HTTP_USER_AGENT" -->

3-3. exec
ÀÌ ¿ä¼Ò´Â ÁÖ¾îÁø ½© ¸í·ÉÀ̳ª CGI½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÑ´Ù. ÀÌ ¸í·ÉÀº º¸¾È¿¡ ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼ö ÀÖÀ¸¹Ç·Î ´Ù¸¥ ¿ä¼Ò¿Í´Â ´Þ¸® ÀÌ ¿ä¼Ò¸¦ ¾µ ¼ö ¾øµµ·Ï ÇÏ·Á¸é access.conf ÀÇ ÇØ´ç µð·ºÅ丮¿¡¼­ Options ¿¡ Includes ´ë½Å¿¡ IncludesNOEXEC ¸¦ Æ÷ÇÔ½ÃŲ´Ù.

À¯È¿ÇÑ ¼Ó¼ºÀº ´ÙÀ½°ú °°´Ù.

3-3-1. cgi
ÀÌ °ªÀº CGI½ºÅ©¸³Æ®ÀÇ URL °ªÀÌ´Ù. (»ó´ë path °¡´É) ÀÌ path¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â ¹®¼­´Â ºñ·Ï ¼­¹ö°¡ ±×°ÍÀ» cgi·Î ÀνÄÇÏÁö ¸øÇÒÁö¶óµµ CGI½ºÅ©¸³Æ®·Î °£ÁֵȴÙ. (Áï È®ÀåÀÚ cgi°¡ CGI½ºÅ©¸³Æ®·Î ÁöÁ¤µÈ ¼­¹ö¿¡¼­ cgi°¡ ¾Æ´Ñ ´Ù¸¥ È®ÀåÀڷεµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù.) ±×·¯³ª ±× ½ºÅ©¸³Æ®ÀÇ µð·ºÅ丮´Â CGI½ºÅ©¸³Æ®°¡ °¡´ÉÇÑ µð·ºÅ丮¿©¾ß ÇÑ´Ù. (Áï cgi-bin À̰ųª access.conf¿¡¼­ ±× µð·ºÅ丮 ºÎºÐ¿¡ Options¿¡ ExecCGI°¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì¿©¾ß ÇÑ´Ù.) ¶ÇÇÑ ÀÌ ½ºÅ©¸³Æ®¿¡´Â CGIÇ¥ÁØ È¯°æº¯¼ö°ª »Ó¸¸¾Æ´Ï¶ó SSI º¯¼öµµ ÇÔ²² ´Ù·ê ¼ö ÀÖ´Ù. À¯ÀÇÇÒ Á¡Àº CGI¿¡ query¸¦ Àü´ÞÇÏÁö ¸øÇÑ´Ù´Â °ÍÀÌ´Ù. ¶ÇÇÑ ±× ½ºÅ©¸³Æ®°¡ Location: Çì´õ°ªÀ» ¸®ÅÏÇϸé ÀÌ°ÍÀº HTMLÀÇ anchorű×(A HREF)À¸·Î ¹ø¿ªµÈ´Ù. Åë»ó ÀÌ exec cgi ¼Ó¼ºº¸´Ù ¿ÀÈ÷·Á include virtual ¼Ó¼ºÀ» »ç¿ëÇÑ´Ù.

¿¹) Ä«¿îÅͽºÅ©¸³Æ®ÀÎ counter.cgi¸¦ ½ÇÇà½Ãų ¶§
<!--#exec cgi="counter.cgi" -->

¿¹) foo.cgi °¡ Location: bar.html À» ¸®ÅÏÇÒ ¶§´Â <a href=bar.html> °ú °°Àº ÇüÅ°¡ µÈ´Ù.

3-3-2. cmd
¼­¹ö´Â /bin/sh ¸¦ »ç¿ëÇÏ¿© ÁÖ¾îÁø ¹®ÀÚ¿­À» ½ÇÇà½ÃŲ´Ù. À̶§´Â Ä¿¸Çµå¿¡ Àμö¸¦ ÇÔ²² Àü´ÞÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.

¿¹) ÇöÀç µð·ºÅ丮¸¦ ¸®½ºÆ® Çü½ÄÀ¸·Î º¸·Á°í ÇÒ ¶§
<!--#exec cmd="ls -al" -->

3-4. include
ÀÌ ¿ä¼Ò´Â parsingµÇ´Â ¹®¼­³»¿¡ ´Ù¸¥ ¹®¼­³ª ÆÄÀÏÀÇ text¸¦ ³¢¿ö ³Ö´Â´Ù. ¸¸¾à parsingµÇ´Â ¹®¼­ÀÇ µð·ºÅ丮¿¡ ´ëÇÑ access.conf ÀÇ ¼³Á¤¿¡¼­ Options¿¡ IncludesNOEXEC °¡ ¼³Á¤µÇ¾î ÀÖ°í, ÀÌ include ¿ä¼Ò¿¡ ÀÇÇØ Æ÷ÇԵǴ ¹®¼­°¡ ¾î¶² ÇÁ·Î±×·¥À» ¼öÇàÇÏ´Â ¹®¼­¶ó¸é ±× ¹®¼­´Â °áÄÚ ¼öÇà µÇÁö ¾Ê´Â´Ù. (Áï IncludesNOEXEC·Î ¼³Á¤Çϸé include ¿ä¼Ò¿¡¼­ ÇÁ·Î±×·¥À» ½ÇÇà ÇÒ ¼ö ¾øµµ·Ï ÇÑ´Ù.)
À§ÀÇ °æ¿ì°¡ ¾Æ´Ï¶ó¸é CGI ½ºÅ©¸³Æ®°¡ include ¿¡ ÀÇÇØ Á¤»óÀûÀ¸·Î ¼öÇàµÈ´Ù. (Åë»ó cgi½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¶§ '#exec cgi' º¸´Ù ¿ÀÈ÷·Á ÀÌ '#include virtual' ¼Ó¼ºÀÌ ´õ »ç¿ëµÈ´Ù.)
ÀÌ ¿ä¼ÒÀÇ ¼Ó¼ºÀº ¹®¼­ÀÇ À§Ä¡¸¦ ³ªÅ¸³½´Ù.

À¯È¿ÇÑ ¼Ó¼ºÀ¸·Î´Â,

3-4-1. file
ÀÌ°ÍÀÇ °ªÀº ÇöÀç parsingµÇ´Â ¹®¼­¸¦ ´ã°íÀÖ´Â µð·ºÅ丮¿¡ ´ëÇÑ »ó´ë °æ·Î°¡ µÇ¾î¾ß ÇÑ´Ù. ÀÌ°Í¿¡´Â »óÀ§ µð·ºÅ丮ÀÎ ../ °¡ ÁöÁ¤µÉ ¼ö ¾ø°í, Àý´ë°æ·Îµµ ÁöÁ¤µÉ ¼ö ¾ø´Ù. À̰ͺ¸´Ù ¾Æ·¡ÀÇ virtual ¼Ó¼ºÀÌ ¿ì¼±ÇÏ¿© »ç¿ëµÇ¾î¾ß ÇÑ´Ù.

3-4-2. virtual
ÀÌ°ÍÀÇ °ªÀº ÇöÀç parsingµÇ´Â ÇöÀç ¹®¼­ÀÇ µð·ºÅ丮¿¡ ´ëÇÑ »ó´ë URLÀÌ´Ù. ÀÌ URL¿¡´Â schemeÀ̳ª È£½ºÆ®¸íÀ» Æ÷ÇÔÇÒ ¼ö ¾ø°í ´ÜÁö °æ·Î¿Í query string¸¸ Æ÷ÇԵȴÙ.
"/index.html" À̳ª "/~yourID/index.html" µî°ú °°ÀÌ Àý´ë URL°æ·Î¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ¸¸¾à "/" ·Î ½ÃÀÛÇÏÁö ¾Ê´Â´Ù¸é ÇöÀç ¹®¼­¿¡ ´ëÇÑ »ó´ëÀûÀÎ °æ·Î·Î °£ÁֵȴÙ.

3-4-3. ¿¹.
ÇöÀç ¹®¼­¿Í °°Àº µð·ºÅ丮¿¡ ÀÖ´Â header.htmlÀ» Æ÷ÇÔÇÒ ¶§
<!--#include virtual="header.html" -->

ÇöÀç µð·ºÅ丮ÀÇ fooµð·ºÅ丮¿¡ ÀÖ´Â counter.cgi¸¦ ½ÇÇà½Ãų ¶§
<!--#include virtual="foo/counter.cgi" -->


3-5. fsize
ÀÌ ¿ä¼Ò´Â ¼Ó¼º¿¡ ÀÇÇØ ÁöÁ¤µÈ ÆÄÀÏÀÇ Å©±â¸¦ Ãâ·ÂÇÑ´Ù. À§ÀÇ config sizefmt ¿¡ ÀÇÇØ ±× Ãâ·ÂÇü½ÄÀÌ ÁöÁ¤ÀÌ µÈ´Ù. À¯È¿ÇÑ ¼Ó¼ºÀº ¹®¼­ÀÇ À§Ä¡¸¦ ³ªÅ¸³»´Â file °ú virtual ¼Ó¼ºÀ¸·Î¼­ À§ÀÇ include ¿ä¼Ò¿¡¼­ÀÇ ¼Ó¼ºµé°ú ¶È°°´Ù.

¿¹) ÇöÀç µð·ºÅ丮¿¡ ÀÖ´Â foo.htmlÀÇ Å©±â¸¦ byte·Î ³ªÅ¸³¾¶§

<!--#config sizefmt="bytes" -->
<!--#fsize virtual="foo.html" -->

3-6. flastmod
ÀÌ ¿ä¼Ò´Â ¼Ó¼º¿¡ ÀÇÇØ ÁöÁ¤µÈ ÆÄÀÏÀÇ ÃÖÁ¾ ¼öÁ¤³¯Â¥¸¦ Ãâ·ÂÇÑ´Ù. À§ÀÇ config timefmt ¿¡ ÀÇÇØ ±× Ãâ·ÂÇü½ÄÀÌ ÁöÁ¤µÈ´Ù.
À¯È¿ÇÑ ¼Ó¼ºÀº ¹®¼­ÀÇ À§Ä¡¸¦ ³ªÅ¸³»´Â file°¡ virtual ¼Ó¼ºÀ¸·Î¼­ À§ÀÇ include ¿ä¼Ò¿¡¼­ÀÇ ¼Ó¼ºµé°ú ¶È°°´Ù.

¿¹) ÇöÀç µð·ºÅ丮¿¡ ÀÖ´Â foo.htmlÀÇ ÃÖÁ¾ ¼öÁ¤ÀϽø¦ ³ªÅ¸³¾¶§

<!--#config timefmt="%y/%m/%d %a. %I:%M %p %Z" -->
<!--#flastmod virtual="foo.html" -->


4. SSI º¯¼ö ( Includes Variables )

Ç¥ÁØ CGIȯ°æº¯¼ö(CGI ±âÃÊ ÆäÀÌÁö ÂüÁ¶) »Ó¸¸¾Æ´Ï¶ó ÀÌ SSI º¯¼öµµ echo ¸í·É¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°Àº SSI º¯¼öµéÀÌ ÀÖ´Ù.

4-1. DATE_GMT
±×¸®´ÏÄ¡ TimeÀ» »ç¿ëÇÏ´Â ÇöÀç ³¯Â¥

4-2. DATE_LOCAL
Áö¿ª ½Ã°£´ëÀÇ ÇöÀç ³¯Â¥

4-3. DOCUMENT_NAME
»ç¿ëÀÚ°¡ ¿äûÇÑ ¹®¼­ÀÇ À̸§(µð·ºÅ丮 Á¦¿Ü)

4-4. DOCUMENT_URI
»ç¿ëÀÚ°¡ ¿äûÇÑ ¹®¼­ÀÇ URL °æ·Î.

4-5. LAST_MODIFIED
»ç¿ëÀÚ°¡ ¿äûÇÑ ¹®¼­ÀÇ ÃÖÁ¾ ¼öÁ¤ ÀÏÀÚ.
Update : 2000/08/07 [µ¹¾Æ°¡±â]