CGI(Common Gateway
Interface) »ç¿ë¹ý ¡¤ ¿¡·¯´ëÃ¥
1. CGI¶õ?
CGI(Common Gateway Interface)´Â
ÇÁ·Î±×·¥À̳ª ½ºÅ©¸³Æ®¸¦ À¥ ¼¹ö¿¡¼ ½ÇÇàÇÏ°Ô ÇÏ¿© ±× °á°ú¸¦ À¥ ÆäÀÌÁö¿¡ º¸¿©ÁÖ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. CGI
ÆÄÀÏÀº »ç¿ëÀÚÀÇ À¥ »çÀÌÆ®¿¡ ¶Ù¾î³ ±â´ÉÀ» ´õÇØÁÙ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ¿Â¶óÀÎÁÖ¹® Æû, °Ë»ö¿£Áø,
Ä«¿îÅÍ, ¹æ¸í·Ï, °Ô½ÃÆÇ µîÀÌ ÀÖ½À´Ï´Ù. CGI ÇÁ·Î±×·¥Àº C, C++, Perl µî ´Ù¾çÇÑ ¾ð¾î·Î ÀÛ¼ºÇÒ
¼ö ÀÖ½À´Ï´Ù.
2. CGI »ç¿ëÇϱâ
- CGI ÇÁ·Î±×·¥Àº ÀڽŠ°èÁ¤ÀÇ public_html
µð·ºÅ丮³ª ±× ¾Æ·¡ÀÇ ¾î´À µð·ºÅ丮¿¡¼µç ½ÇÇàÀÌ °¡´ÉÇÕ´Ï´Ù.
- CGI ÇÁ·Î±×·¥ÀÇ È®ÀåÀÚ´Â ¹Ýµå½Ã .cgi
¸¦ »ç¿ëÇÏ¼Å¾ß À¥ ¼¹ö°¡ CGI ÇÁ·Î±×·¥À¸·Î ÀνÄÇÏ¿© Á¤»óÀûÀ¸·Î ½ÇÇàÇÏ°Ô µË´Ï´Ù.
[ÁÖÀÇ!]
cgi-sys µð·ºÅ丮´Â »ç¿ëÀÚ Àüü°¡ °øÀ¯ÇϹǷΠ°³ÀÎÀûÀ¸·Î »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
cgi-bin µð·ºÅ丮¸¦ ¸¸µé¾î »ç¿ëÇϽô °ÍÀÌ º¸¾È¿¡ È¿°úÀûÀÔ´Ï´Ù.
3. cgiwrapÀÇ »ç¿ë
cgiwrapÀ» »ç¿ëÇÒ ¶§ÀÇ °æ·Î´Â ´ÙÀ½°ú
°°½À´Ï´Ù.
http://www.ÀÚ½ÅÀǵµ¸ÞÀÎ/cgi-sys/cgiwrap/ÀÚ½ÅÀÇ_È£½ºÆ®¿ÍÀ̵å_ID/ÇÁ·Î±×·¥À̸§.cgi
À§¿Í °°ÀÌ cgiwrapÀ» »ç¿ëÇÒ ¶§¿¡´Â
ÀÚ½ÅÀÇ public_html ³»ºÎÀÇ cgi-bin µð·ºÅ丮¿¡ ÇØ´ç ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ°í »ç¿ëÇÏ½Ã¸é µË´Ï´Ù.
cgiwrapÀ» »ç¿ëÇϸé ÆÄÀÏÀÇ »ç¿ë±ÇÇÑ°ú º¸¾È¿¡ »ó´çÈ÷ ¸¹Àº ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. »ý¼ºµÇ´Â ÆÄÀÏ¿¡ ¾²±â »ç¿ë±ÇÇÑÀ»
ÁÙ ÇÊ¿ä°¡ ¾øÀ¸¹Ç·Î ÀڽŸ¸ ÀÐ°í ¾µ ¼ö ÀÖ´Â ÆÄÀÏ »ç¿ë±ÇÇÑÀ¸·Îµµ CGI¸¦ ½ÇÇà½Ãų ¼ö ÀÖ½À´Ï´Ù.
4. CGI »ç¿ë½Ã À¯ÀÇÁ¡
È£½ºÆ®¿ÍÀ̵å´Â º°´Ù¸¥ Ãß°¡ºñ¿ë¾øÀÌ CGI ÇÁ·Î±×·¥À»
»ç¿ëÇÏ½Ç ¼ö ÀÖµµ·Ï ÇÏ°í ÀÖ½À´Ï´Ù. CGI´Â ¼¹öÀÇ CPU¿Í ¸Þ¸ð¸®ÀÇ ½ÇÇà´É·Â¿¡ ¸¹Àº ¿µÇâÀ» ÁÝ´Ï´Ù. ±×·¯¹Ç·Î
¼¹öÀÇ ½ÇÇà´É·Â¿¡ ³ª»Û ¿µÇâÀ» ¹ÌÄ¡Áö ¾Êµµ·Ï CGIÀÇ ³²¿ëÀº ÀÚÁ¦ÇÏ¿© Áֽñ⠹ٶø´Ï´Ù.
5. CGI·Î ¸ÞÀÏÀ» º¸³¾¶§¿¡ ÁÖÀÇÇØ¾ß ÇÒ »çÇ×
CGI¸¦ ÀÌ¿ëÇؼ ¸ÞÀÏÀ» ¹ß¼ÛÇÒ °æ¿ì¿¡ /usr/sbin/sendmailÀ»
»ç¿ëÇϽøé ÇÁ·Î±×·¥ ³»¿¡¼ ¸ÞÀÏ ¹ß¼ÛÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ¸ÞÀÏÀÌ ¼º°øÀûÀ¸·Î µµÂøÇÏÁö ¾Ê°í ¹Ý¼ÛµÉ
°æ¿ì¿¡ ½Ã½ºÅÛ °ü¸®ÀÚ¿¡°Ô ¹Ý¼Û¸ÞÀÏÀÌ ¿À°Ô µÇ¹Ç·Î ¸ÞÀÏÀÇ ³»¿ëÀÌ ³ëÃâµË´Ï´Ù. ¶ÇÇÑ ¹Ý¼Û¸ÞÀÏÀÇ ¾çÀÌ ¸¹À» °æ¿ì¿¡
¾÷¹«¿¡ ÁöÀåÀ» ÁÖ°Ô µË´Ï´Ù.
CGI·Î º¸³½ ¸ÞÀÏÀ» »ç¿ëÀÚ Àڽſ¡°Ô ¹Ý¼ÛµÇµµ·Ï
ÇÏ´Â ¹æ¹ýÀº ¾Æ·¡¿Í °°ÀÌ sendmail¿¡ ¿É¼ÇÀ» ¼³Á¤ÇÏ¸é °£´ÜÈ÷ ÇØ°áµË´Ï´Ù.
/usr/sbin/sendmail -f ÀÚ½Å@Àڱ⵵¸ÞÀÎ
[°í±Þ]
cgiwrapÀ» »ç¿ëÇؼ ¸ÞÀÏÀ» ¹ß¼ÛÇϸé Ưº°ÇÑ ¼³Á¤ÀÌ ¾ø¾îµµ ÀÚ½ÅÀÌ º¸³½ ¸ÞÀÏ·Î ÀνÄÇÕ´Ï´Ù.
[ÁÖÀÇ!]
CGI·Î ¹ß¼ÛµÈ ¸ÞÀÏÀ» ¸ðµÎ Â÷´ÜÇÏ´Â ¸ÞÀÏ ¼¹öµµ ÀÖÀ¸¹Ç·Î, Áß¿äÇÑ ¸ÞÀÏÀ» º¸³¾ ¶§´Â ¹Ýµå½Ã À̸ÞÀÏ Àü¿ëÇÁ·Î±×·¥À»
ÀÌ¿ëÇϽʽÿÀ.
6. CGI µð¹ö±ë
È£½ºÆ®¿ÍÀ̵å´Â ½Ã½ºÅÛ ¿î¿µ¿¡ ´ëÇÑ Ã¥ÀÓÀÌ ÀÖÀ»
»Ó, »ç¿ëÀÚÀÇ CGI ÇÁ·Î±×·¥ °³¹ß ¹× µð¹ö±ë¿¡ ´ëÇÑ Ã¥ÀÓÀº ¾ø½À´Ï´Ù. CGI ÇÁ·Î±×·¥»óÀÇ ¹®Á¦·Î ¹®ÀÇÇÏ´Â
ÀÏÀº ÇÇÇØ Áֽñ⠹ٶó¸ç, ½Ã½ºÅÛ ¹®Á¦ ¶§¹®¿¡ CGI ½ÇÇà¿¡ ÀÌ»óÀÌ ÀÖ´Ù°í ÆǴܵǴ °æ¿ì¿¡¸¸ ¹®ÀÇÇØ Áֽñâ
¹Ù¶ø´Ï´Ù.
CGI´Â ÇÁ·Î±×·¡¹Ö°ú À¯´Ð½º ½Ã½ºÅÛ¿¡ ´ëÇÑ
Àü¹®Áö½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¸¸¾à ¿©·¯ºÐ²²¼ CGI¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ »çÇ×À» ¾Ë°í½ÍÀ¸½Ã´Ù¸é ¾Æ·¡ÀÇ ¸µÅ©¸¦ ÂüÁ¶ÇØ
Áֽñ⠹ٶø´Ï´Ù.
Matt's Scripts Archive [http://www.worldwidemart.com/scripts/]
CGI-Resources [http://www.cgi-resources.com/Documentation/]
Boutell Web Tools [http://www.boutell.com/tools.html]
7. CGI ¿¡·¯ üũ¸®½ºÆ®
CGI ÇÁ·Î±×·¥¿¡¼ ¹ß»ýÇÏ´Â ¿¡·¯µéÀº ´ëºÎºÐ
°£´ÜÇÑ °ÍÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ »ç¿ëÇϽô CGI ÇÁ·Î±×·¥¿¡¼ ¿¡·¯°¡ ¹ß»ýÇß´Ù¸é ´ÙÀ½ÀÇ Ã¼Å©¸®½ºÆ®¸¦ Âü°íÇÏ¿©
¹®Á¦¸¦ ÇØ°áÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
perl file.cgi
¸¸¾à ÇÁ·Î±×·¥ ¹®¹ýÀ̳ª ÄÚµù¿¡ ¿¡·¯°¡ ÀÖ´Ù¸é ÇØ´ç ¿¡·¯¸Þ½ÃÁö°¡ Ãâ·ÂµË´Ï´Ù.
¿¡·¯¸Þ½ÃÁö¸¦ ÂüÁ¶ÇÏ¿© ¼Ò½º¸¦ ¼öÁ¤ÇÏ¿© ÁֽʽÿÀ.
- ½ºÅ©¸³Æ®°¡ À¯´Ð½º »ó¿¡¼´Â Àß ½ÇÇàµÇ³ª,
À¥ »ó¿¡¼´Â µÇÁö ¾ÊÀ» ¶§ ÆÄÀÏÀ̳ª µð·ºÅ丮ÀÇ »ç¿ë±ÇÇÑÀ» »ìÆì º¸½Ê½Ã¿À.
8. CGI ¿¡·¯ ã±â
Perl ½ºÅ©¸³Æ®ÀÇ ¿¡·¯¸¦ ã´Â ´Ù¸¥ ÇÑ
°¡Áö ¹æ¹ýÀº, ÇØ´ç ½ºÅ©¸³Æ® ÄÚµå ³»ÀÇ Ã¼Å©ÇÏ°íÀÚ ÇÏ´Â ºÎºÐ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» »ðÀÔÇÏ´Â °ÍÀÔ´Ï´Ù.
print "Content-type:
text/html\n\n\n";
print "<h1>¿©±â±îÁö´Â ¿¡·¯°¡ ¾ø½À´Ï´Ù</h1>";
exit;
À¥ºê¶ó¿ìÀú »ó¿¡¼ ÇØ´ç CGI¸¦ ½ÇÇàÇÏ¿©,
¸¸¾à "¿©±â±îÁö´Â ¿¡·¯ ¾ø½À´Ï´Ù."¶ó´Â ±ÛÀÌ Ãâ·ÂµÈ´Ù¸é ½ºÅ©¸³Æ® ³»¿¡¼ À§ÀÇ ³»¿ëÀÌ ÀÖ´Â ºÎºÐ±îÁö´Â Á¤»óÀûÀ¸·Î
½ÇÇàµÈ´Ù´Â ÀǹÌÀÔ´Ï´Ù. ´Ù½Ã À§ÀÇ ³»¿ëÀ» Á» ´õ ¾Æ·¡¿¡ »ðÀÔÇÏ¿© Å×½ºÆ® ÇØ º¸½Ê½Ã¿À. ¸¸¾à À§ÀÇ ¸Þ½ÃÁö°¡
³ª¿ÀÁö ¾Ê´Â´Ù¸é, ±× ¾ÕºÎºÐ¿¡ ¿¡·¯°¡ ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù. À§ÀÇ ³»¿ëÀ» Á» ´õ À§¿¡ »ðÀÔÇÏ¿© ¿¡·¯°¡ ÀÖ´Â À§Ä¡¸¦
ã¾Æ³»½Ã¸é µË´Ï´Ù.