½ÃÀÛÆäÀÌÁö·Î Áñ°Üã±âÃß°¡
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ l Ã⼮üũ l ¸¶ÀÌÆäÀÌÁö l CGIMALL
ÀÚ·á½Ç »çÀÌÆ®µî·Ï ·©Å·100 ÇÁ·Î±×·¥¸®ºä °ü¸®ÀÚÃßõÀÚ·á Ãʺ¸°¡À̵å
Ä¿¹Â´ÏƼ
Àüü ÆîÃ帱â
Äü¸Þ´º¸µÅ© jquery , CSS , PHP , Javascript , ¹«·áÆùÆ® , ASP
»ó¼¼°Ë»ö
Ȩ > »ó¼¼º¸±â Ãʺ¸°¡À̵å
»çÀÌÆ®µî·Ï
Ŭ¶ó¿ìµåű×
Javascript
PHP
html
ASP
mysql
CSS
Mobile
image
jquery
slide
¸Þ´º
�޴�
2023
ÇöÀçÁ¢¼ÓÀÚ ¸í »õ·Î°íħ
°Ô½ÃÆÇŸÀÌƲ Ãʺ¸°¡À̵å / »ó¼¼º¸±â
Æ®À§ÅÍ·Î º¸³»±â
CGI°¡ ¿¡·¯³¯¶§
Ãʺ¸°¡À̵å > »ó¼¼º¸±â | 2013-05-29 14:25:34
Ãßõ¼ö 842
Á¶È¸¼ö   27,398

´Ð³×ÀÓ

HappyCGI

Á¦¸ñ

CGI°¡ ¿¡·¯³¯¶§
³»¿ë
1 ¿¡·¯ÀÇ Á¾·ù
2 500¿¡·¯°¡ ¾îµð¼­ ³µ´ÂÁö °Ë»çÇغ¸±â
3 ÆÄÀÏÀü¼Û ¸ðµå
4 ÆÞÀÇ À§Ä¡
5 ÆÛ¹Ì¼Ç ¼³Á¤
6 Ư¼ö¹®ÀÚ Ã³¸®
7 ÆÄÀÏÀü¼ÛÀÌ Á¦´ë·Î µÇÁö ¾Ê´Â °æ¿ì
8 CGI Á¢±ÙÀ» Çã¿ëÇÏÁö ¾Ê´Â °æ¿ì
9 Perl »ç¿ë¿©ºÎ Å×½ºÆ®

1 ¿¡·¯ÀÇ Á¾·ù #


  • Bad request(À߸øµÈ ¿äû) 400:
    °¡Àå ÀϹÝÀûÀÎ ¿¡·¯À̸ç ÀÌ¿ëÀÚ°¡ ÀÎÅÍ³Ý ÁÖ¼Ò(URL)¸¦ À߸ø ÀÔ·ÂÇßÀ»¶§ ¹ß»ýÇÕ´Ï´Ù.
     
  • Unauthorized(±ÇÇѾøÀ½) 401:
    ¿ª½Ã °¡Àå ÀϹÝÀûÀÎ ¿¡·¯ÁßÀÇ ÇϳªÀÔ´Ï´Ù. ÈçÈ÷ ÀÎÅÍ³Ý ºê¶ó¿ìÀú(ÀÎÅÍ³Ý ÀͽºÇ÷η¯,³Ý½ºÄÉÀÌÇÁ)°¡ º¸³½ ¸Þ½ÃÁö°¡ ¼­¹ö¿¡¼­ °ÅºÎ´çÇÒ¶§ ³ªÅ¸³ª´Â ¸Þ½ÃÁö ÀÔ´Ï´Ù.
     
  • Forbidden(Á¢±Ù±ÝÁö) 403:
    "Á¢±Ù±ÝÁö"¶õ º¼¼ö ÀÖ´Â ±ÇÇÑÀÌ ¾ø´Â ÆäÀÌÁö¸¦ º¸·Á°í ÇÒ¶§ ³ªÅ¸³³´Ï´Ù.
     
  • Not found(ÆÄÀϾøÀ½) 404:
    °¡Àå ÈçÈ÷ ³ªÅ¸³ª´Â ¸Þ½ÃÁö·Î 400 ¿¡·¯ ¸Þ½ÃÁö¿Í À¯»çÇÕ´Ï´Ù. ±âº»ÀûÀ¸·Î ¿äûÇÑ ÆäÀÌÁö°¡ ´õÀÌ»ó Á¸ÀçÇÏÁö ¾Ê°Å³ª Ʋ¸° À¥ÁÖ¼Ò(URL)ÀÎ °æ¿ìÀÔ´Ï´Ù.
     
  • Internal Error(³»ºÎ ¿¡·¯) 500:
    À¥¼­¹ö°¡ ³»ºÎ ÇÁ·Î±×·¥ ¹®Á¦·Î ¿äûÇÑ À¥¹®¼­¸¦ ¼­ºñ½ºÇÒ ¼ö ¾øÀ»°æ¿ì ÀÔ´Ï´Ù.
     
  • Not implemented(±¸Çö¾ÈµÊ) 501:
    ÀÌ ¸Þ½ÃÁö´Â ¿¹¸¦ µé¾î, À¥ÆäÀÌÁöÀÇ ¾î¶² ¾ç½ÄÀ» ÀÛ¼ºÇÏ°í 'Àü¼Û' ¹öÆ°À» Ŭ¸¯ÇÏ¿´À» ¶§ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼­¹ö°¡ ¾ÆÁ÷ ÀÌ·¯ÇÑ ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â °æ¿ìÀÔ´Ï´Ù. ÀÌ ¸Þ½ÃÁö´Â ÀüÇüÀûÀÎ ¿¡·¯´Â ¾Æ´Ï¸ç »õ·Î¿î ±â´ÉÀ̳ª ¾ç½ÄµîÀ» ¼öÇàÇÏ¿´À» ¶§ ÀϾ´Ï´Ù.
     
  • Service temporarily overloaded(ÀϽÃÀû ¼­¹ö°úºÎÇÏ) 502:
    ¼­¹ö¿¡ °úµµÇÏ°Ô ÀÌ¿ëÀÚÀÇ Á¢¼Ó(¿äû)ÀÌ ¸ô¸®´Â °æ¿ìÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î "if at first you don't suceed..."¶ó´Â ¹®±¸°¡ ³ª¿É´Ï´Ù. ÇØ°áÃ¥À¸·Î´Â Àá½ÃÈÄ¿¡ ¼­¹öÀÇ Á¢¼ÓÀÌ ÇÑ°¡ÇØÁú¶§ ´Ù½Ã Á¢¼ÓÇØ º¸´Â °ÍÀÔ´Ï´Ù.
     
  • Gateway timeout(°ÔÀÌÆ®¿þÀÌ ½Ã°£ÃÊ°ú) 503:
    ÀÌ ¸Þ½ÃÁö´Â ¼­¹ö¹®Á¦, ³×Æ®¿öÅ©³ª ÀÌ¿ëÀÚ PCÀÇ ¹®Á¦µîÀ¸·Î ¿¬°á½Ã°£ÀÌ ÃÊ°úµÇ¾úÀ»¶§ ¹ß»ýÇÕ´Ï´Ù. À¥¼­¹ö·Î ¿¬°áÇÏ´Â µµÁß¿¡ Àå¾Ö°¡ »ý±â´Â °æ¿ì¿¡ ÁÖ·Î ¹ß»ýÇÕ´Ï´Ù.
     

2 500¿¡·¯°¡ ¾îµð¼­ ³µ´ÂÁö °Ë»çÇغ¸±â #

  • ÅÚ³ÝÀ¸·Î Á¢¼ÓÇÕ´Ï´Ù.
  • Åڳݿ¡¼­ ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ÁÝ´Ï´Ù. ¸¸¾à ¿À·ù³ª´Â ÆÄÀϸíÀÌ test.cgi ¶ó°í ÇÕ´Ï´Ù.


     ÅÚ³Ý> perl test.cgi[¿£ÅÍ]
    
    
  • ¿À·ù³ª´Â ÀÌÀ¯¸¦ º¸°í ÇØ´ç ÆÄÀÏÀ» ¼öÁ¤ÇÕ´Ï´Ù.
     

3 ÆÄÀÏÀü¼Û ¸ðµå #

À©µµ¿ìÁî(Windows 95/98/2000/NT)¸¦ »ç¿ëÇϽô ºÐÀº ÆÞ½ºÅ©¸³Æ®¸¦ FTP·Î ÆÄÀÏÀ» Àü¼ÛÇÒ ¶§ ¹Ýµå½Ã ¾Æ½ºÅ° ¸ðµå·Î ÇؾßÇÕ´Ï´Ù. À¯´Ð½º¿Í µµ½º´Â ÅؽºÆ® ÆÄÀÏÀ» Ç¥ÇöÇÏ´Â Çü½ÄÀÌ ´Ù¸£±â ¶§¹®¿¡ ÆÄÀÏÆ÷¸ËÀ» ¹Ù²ãÁÖ¾î¾ß ÇÕ´Ï´Ù. ¸¸ÀÏ ¹ÙÀ̳ʸ® ¸ðµå·Î Àü¼ÛÇßÀ» °æ¿ì"Internal Sever Error" ¶ó´Â ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÕ´Ï´Ù.


4 ÆÞÀÇ À§Ä¡ #

ÆÞ½ºÅ©¸³Æ®¿¡´Â Ç×»ó ¸Ç ùÁÙ¿¡ ÆÞ ÇÁ·Î±×·¥À» ¼öÇàÇÒ ¼­¹ö ³»ÀÇ ÆÞ °æ·Î¸¦ ÁöÁ¤ÇØ ÁÝ´Ï´Ù. ÆÞ °æ·Î°¡ ¸ÂÁö ¾ÊÀ¸¸é ÇÁ·Î±×·¥À» ¼öÇàÇÒ ¼ö ¾øÀ¸¹Ç·Î ¼­¹ö¿¡·¯ ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÕ´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì #!/usr/bin/perl ¶Ç´Â #!/usr/local/bin/perlÀÌ¸ç ¼­¹öÀÇ Á¾·ù¿¡ µû¶ó ´Ù¸¥ °æ·ÎÀÏ ¼öµµ ÀÖ½À´Ï´Ù.

È®Àιæ¹ýÀº ÅÚ³ÝÀ¸·Î ·Î±äÇϼż­ 'which perl' ¶Ç´Â 'whereis perl' À̶ó´Â ¸í·É¾î¸¦ ÀÔ·ÂÇÏ°í ¿£ÅÍÅ°¸¦ Ä¡¸é °æ·Î¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÅڳݰèÁ¤ÀÌ ¾ø´Â ºÐÀº ½Ã½ºÅÛ °ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇØ¾ß ÇÕ´Ï´Ù.


5 ÆÛ¹Ì¼Ç ¼³Á¤ #

ÆÞ½ºÅ©¸³Æ®ÀÇ È®ÀåÀÚ°¡ *.cgi ÀÎ °æ¿ì ½ÇÇà ÆÄÀÏÀ̹ǷΠÀбâ(read)¿Í ½ÇÇà(execute)±ÇÇÑÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ´ÙÀ½Àº Åڳݰú FTP¸¦ ÀÌ¿ëÇÑ ÆÛ¹Ì¼Ç ¼³Á¤ ¹æ¹ýÀÔ´Ï´Ù.

<ÅÚ³Ý>ÀÇ °æ¿ì: 'chmod 755 myscript.cgi' ÀÇ ¸í·É¾î¸¦ ÀÌ¿ëÇϼ¼¿ä.
<FTP>ÀÇ °æ¿ì: ÆÄÀϼÒÀ¯ÀÚ-Àбâ/¾²±â/½ÇÇà, ±×·ì-Àбâ/½ÇÇà, ´Ù¸¥»ç¿ëÀÚ-Àбâ/½ÇÇà ÀÇ ¸ðµå·Î ÀüȯÇØÁÖ¼¼¿ä.


6 Ư¼ö¹®ÀÚ Ã³¸® #

Perl¿¡¼­´Â @ $ " ; &µîÀÇ Æ¯¼ö¹®ÀÚµéÀ» ¹®¹ýÀÇ ÀϺηΠ»ç¿ëÇÕ´Ï´Ù. ÆÞ¿¡¼­ ¾²´Â Ư¼ö¹®ÀÚ¸¦ ºê¶ó¿ìÁ®¸¦ ÅëÇØ ÀÏ¹Ý ¹®ÀÚ·Î ÀÎ½Ä ½ÃÅ°·Á¸é ¹Ýµå½Ã ¹®ÀÚ ¾Õ¿¡ ¹é½½·¡½¬(backslash, \)¸¦ ºÙ¿©Áà¾ß ÇÕ´Ï´Ù.

°¡Àå ÈçÈ÷ ¿¡·¯°¡ ³ª´Â °æ¿ì´Â ÀüÀÚ¿ìÆí ÁÖ¼Ò, ¿¹¸¦ µé¾î myemail@email.com À̸é myemail\@email.comÀ¸·Î ÇØÁÖ¾î¾ß ÇÏ°í HTML ű׸¦ ¾µ ¶§, href="http://happycgi.com"À̸é href=\"http://happycgi.com\" À¸·Î ÇØÁÖ¾î¾ß ¿¡·¯°¡ ³ªÁö ¾Ê½À´Ï´Ù.

Ư¼ö¹®ÀÚ Ã³¸®³ª ¹®¹ý¿¡ ¿¡·¯°¡ ÀÖÀ» °æ¿ì ã´Â °ÍÀº Çϱâ½ÈÀº ÀÛ¾÷ Áß ÇϳªÀÔ´Ï´Ù. ÀÌ °æ¿ì¿¡ ÅÚ³ÝÀ¸·Î ·Î±äÇؼ­ perl myscript.cgi ¶ó°í ÀÔ·ÂÇÏ¸é ¿¡·¯°¡ ÀÖ´Â ºÎºÐÀ» Ç¥½ÃÇØÁÝ´Ï´Ù.


7 ÆÄÀÏÀü¼ÛÀÌ Á¦´ë·Î µÇÁö ¾Ê´Â °æ¿ì #

¿¡·¯¸Þ¼¼Áö°¡ "prematured script" ¶ó°í Ç¥½ÃµÉ °æ¿ì¿¡´Â ÆÄÀÏÀü¼ÛÀÌ ¼º°øÀûÀ¸·Î µÇÁö ¾ÊÀº °æ¿ìÀÔ´Ï´Ù. ÀÌ °æ¿ì¿¡´Â ÆÄÀÏÀ» ´Ù½Ã Àü¼ÛÇؼ­ µ¤¾î¾²¸é µÇ°Ú½À´Ï´Ù.


8 CGI Á¢±ÙÀ» Çã¿ëÇÏÁö ¾Ê´Â °æ¿ì #

¼­¹ö¿¡¼­ »ç¿ëÀÚ¿¡°Ô CGI Á¢±ÙÀ» Çã¿ëÇÏÁö ¾Ê´Â °æ¿ìÀÔ´Ï´Ù. ´ëºÎºÐ È£½ºÆþ÷ü´Â CGI Á¢±ÙÀº Çã¿ëÇÒ °æ¿ì´Â PerlÀ» Á¦°øÇÏ°í ¼³Ä¡Á¤º¸¸¦ ¹Ì¸® ¾Ë·ÁÁְųª ȨÆäÀÌÁö¿¡ ¼ö·ÏÇÏ°í ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀ» °æ¿ì È£½ºÆÃÀ» ÇÏ´Â ½Ã½ºÅÛ °ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇϽñ⠹ٶø´Ï´Ù.


9 Perl »ç¿ë¿©ºÎ Å×½ºÆ® #

- ÀÚ½ÅÀÇ °èÁ¤ÀÇ CGI »ç¿ë¿©ºÎ¸¦ Å×½ºÆ®Çغ¸½Ã·Á¸é ¾Æ·¡Äڵ带 º¹»çÇÕ´Ï´Ù.

#!/usr/bin/perl
print "content-type:text/html\n\n";
print "Hello world";

  • º¹»çÇÑ Äڵ带 test.cgi¶õ ÆÄÀÏ·Î ÀúÀåÇÕ´Ï´Ù.
  • test.cgi ÆÄÀÏÀ» FTP·Î ÀÚ½ÅÀÇ °èÁ¤¿¡ ?¾Æ½ºÅ° ¸ðµå·Î ¾÷·Îµå ÇÕ´Ï´Ù.
  • test.cgiÀÇ Æ۹̼ÇÀ» 755·Î ¹Ù²ß´Ï´Ù. (chmod 755 test.cgi)
  • ºê¶ó¿ìÁ®¿¡¼­ Á¤È®ÇÑ ?URLÀ» ÀÔ·ÂÇÏ°í ¿£ÅÍÅ°¸¦ Ĩ´Ï´Ù. (http://www.mysite.com/~myid/cgi/test.cgi)
  • ¼­¹ö¿¡·¯°¡ ³ª´Â °æ¿ì ÆÞ °æ·Î¸¦ #!/usr/bin/perl ¶Ç´Â #!/usr/local/bin/perl ¹Ù²ã°¡¸é¼­ Å×½ºÆ®ÇÕ´Ï´Ù.
  • ±ÝÁö(forbidden) ¸Þ¼¼Áö°¡ ³ª¿À¸é PerlÀ» »ç¿ëÇÒ ¼ö ¾ø°Å³ª »ç¿ëÀÚ µð·ºÅ丮¿¡¼­ CGI »ç¿ëÀ» Çã¿ëÇÏÁö ¾Ê´Â °æ¿ìÀÔ´Ï´Ù.
Ãßõ½ºÅ©·¦¼Ò½ºº¸±â ¸ñ·Ï
ÀÌÀü°Ô½Ã±Û CGI°¡¹¹ÁÒ? 2013-05-29 14:20:37
´ÙÀ½°Ô½Ã±Û À¯´Ð½º ±âº»¸í·É¾î 2013-05-29 14:28:30