CGI¿Í Fill-Out Form

      CGI´Â Common Gateway InterfaceÀÇ ¾àÀÚÀÌ´Ù. CGIÀÇ ¸ñÀûÀº À¥À» ÅëÇÏ¿© ¹Ù·Î Á¦°øÇÒ ¼ö ¾ø´Â ÀڷḦ Á¦°øÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» À§ÇÑ °ÍÀ̸ç, ȨÆäÀÌÁö¸¦ ÀÛ¼ºÇϱâ À§Çؼ­ ²À CGI¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. HTML ¹®¼­¸¸À¸·Îµµ ÃæºÐÇÑ Á¤º¸¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª, ÀÌ´Â Server¿¡¼­ Á¦°øÇÏ¿©¾ß ÇÒ ¸·´ëÇÑ Date Base°¡ ÀÖ´Ù¸é, ¹®Á¦°¡ µÈ´Ù. ¸ðµç ÀÚ·áµéÀ» HTML ¹®¼­·Î ÄÚµù(coding)ÇÑ´Ù´Â °ÍÀº ¹«Ã´ ¾î·Á¿î ÀÏÀÌ´Ù. ÀÌ·¯ÇÑ ÀڷḦ À¥À» ÅëÇÏ¿© Á¦°øÇϱâ À§ÇÏ¿©¼­´Â ÀÏÁ¾ÀÇ ÀÎÅÍÆäÀ̽º ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ·¯ÇÑ ÇÁ·Î±×·¥À» »ç¿ëÇϸé, ¼­¹ö°¡ °¡Áö°í ÀÖ´Â DBÀÇ Á¦°øÀº ¹°·Ð »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ´Ù½Ã DB¿¡ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. CGI ÇÁ·Î±×·¥ÀÇ ´ëÇ¥ÀûÀÎ ¿¹´Â search engin°ú counter, À̹ÌÁö ¸Ê, À¥À» ÅëÇØ ±¸ÃàµÈ BBS µîÀ» »ý°¢ÇØ º¼ ¼ö ÀÖ´Ù.
´ÙÀ½Àº ±×¸²Àº CGI°¡ ¾î¶°ÇÑ Çü½ÄÀ¸·Î ±¸ÇöµÇ´Â°¡¸¦ º¸¿©ÁØ´Ù.

[±×¸²] CGI¸¦ ÅëÇÑ ÀÚ·á Àü¼Û

      »ç¿ëÀÚ°¡ ºê¶ó¿ìÀú¸¦ ÅëÇÏ¿© ¼­¹öÀÎ HTTPD¿¡°Ô ¿øÇÏ´Â Á¤º¸¸¦ º¸³»¸é, ¼­¹ö´Â »ç¿ëÀÚ°¡ ¿äûÇÑ CGI ÇÁ·Î±×·¥À» ÀÛµ¿½ÃÄÑ ±× °á°ú¸¦ »ç¿ëÀÚ¿¡°Ô µÇµ¹·Á ÁØ´Ù. ¹°·Ð À̶§ CGI ÇÁ·Î±×·¥Àº »ç¿ëÀÚ°¡ º¸³»¿Â Á¤º¸¸¦ ¼­¹öÀÇ DB¿¡ ÀúÀåÇÒ ¼öµµ ÀÖ´Ù. ÀÌ¿Í °°ÀÌ CGI¸¦ »ç¿ëÇÏ¿© µ¿ÀûÀÎ À¥ ÆäÀÌÁö¸¦ ±¸ÃàÇÒ ¼ö ÀÖ´Ù. (Server Push Âü°í)

      ±×·¯¸é, CGI´Â ¾î¶»°Ô ÀÌ·ç¾î Áö´Â°¡¸¦ º¸ÀÚ. HTTP 1.0¿¡¼­´Â ÀÌ·¯ÇÑ CGI¸¦ Áö¿øÇϱâ À§ÇÏ¿© Fill Out FormÀ» ±ÔÁ¤ÇÑ´Ù. Fill Out FormÀº HTML ¹®¼­ÀÇ ÇÑ Çü½ÄÀ¸·Î¼­ ºê¶ó¿ìÀúÀÇ »ç¿ëÀÚ°¡ ¼­¹ö¿¡ º¸³¾ Á¤º¸¸¦ ÀÔ·ÂÇÏ´Â Çü½ÄÀ» ¸¸µé¾î ÁØ´Ù. ´ÙÀ½Àº °£´ÜÇÑ Fill Out FormÀÇ ¿¹ÀÌ´Ù.

 <FORM METHOD="POST" ACTION="/cgi-bin/cgi_program">
 ÁÖ¼Ò : <INPUT NAME="address" size=20><br>
 ³»¿ë : <TEXTAREA NAME="cont" ROWS=3 COLS=30></TEXTAREA><>
 <INPUT TYPE="submit" VALUE="ÀúÀå">
 <INPUT TYPE="reset" VALUE="Áö¿ì±â">
 </FORM>

±×¸®°í ´ÙÀ½Àº ½ÇÁ¦ È­¸é¿¡ ³ª¿À´Â ³»¿ëÀÌ´Ù.

ÁÖ¼Ò :
³»¿ë :

      ¿©±â¼­ ÀûÀýÇÑ ³»¿ëÀ» Àû¾î ³ÖÀº ´ÙÀ½, ÀúÀå(submit)À» ¼±ÅÃÇÏ¸é ºê¶ó¿ìÀú´Â »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ³»¿ëÀ» ¼­¹ö¿¡°Ô º¸³»°Ô µÈ´Ù.
±×·¯¸é, ÀÔ·ÂµÈ ³»¿ëÀÌ ¾î¶°ÇÑ ¹æ½ÄÀ¸·Î cgi¿¡ Àü´ÞµÇ´Â Áö¸¦ º¸ÀÚ.


[±×¸²] CGI¿¡¼­ ÀÚ·á°¡ Àü´ÞµÇ´Â ¹æ½Ä

      CGI ÇÁ·Î±×·¥À¸·Î ÀÔ·ÂÀÌ Àü´ÞµÇ´Â ¹æ½ÄÀº À§ [±×¸²]ÀÇ µÎ°¡Áö ¹æ½ÄÀÌ ÀÖ´Ù. <FORM>¿¡¼­ METHOD="GET"À» ¾µ °æ¿ì ¸ðµç ÀÔ·ÂÀÌ È¯°æº¯¼ö(environment)·Î Àü´ÞµÈ´Ù. ÀÔ·ÂµÈ ³»¿ëÀº QUERY_STRINGÀ̶ó´Â ȯ°æº¯¼ö·Î Àü´ÞµÈ´Ù. À̶§ °¢Á¾ ȯ°æµé(Á¢¼Ó°æ·Î, ¼­¹öÁ¾·ù µîµî)µµ ȯ°æº¯¼ö¸¦ ÅëÇÏ¿© Àü´ÞµÈ´Ù.
      ºê¶ó¿ìÀú¿¡¼­´Â »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ³»¿ëÀ» ¾Æ·¡ÀÇ URLÇü½Ä°ú °°ÀÌ Àü´ÞÇÑ´Ù.

http://phya.yonsei.ac.kr/cgi-bin/test-cgi?name1=³»¿ë1&name2=³»¿ë2

À̶§ ȯ°æº¯¼ö QUERY_STRINGÀº 'name1=³»¿ë1&name2=³»¿ë2'ÀÌ µÈ´Ù. QUERY_STRINGÀ» ÇØ¼®ÇÏ´Â ¿ªÇÒ Àº cgi ÇÁ·Î±×·¥ÀÌ ¸Ã´Â´Ù. ÀÌ¿¡ °ü·ÃÇÑ perl, c µîÀÇ ¶óÀ̺귯¸®¸¦ ±¸ÇÒ ¼öµµ ÀÖ´Ù.

      METHOD="POST"¸¦ »ó¿ëÇÑ °æ¿ì¿¡´Â 'name1=³»¿ë1&name2=³»¿ë2'ÀÌ environment°¡ ¾Æ´Ñ Ç¥ÁØÀÔ·Â(standard input)À¸·Î ÀԷµȴÙ. environment·Î ³»¿ëÀ» Àü´ÞÇÏ´Â ¹æ¹ýÀº ÀÔ·Â ±æÀÌÀÇ ÇѰ谡 ÀÖ´Ù. µû¶ó¼­ Textarea¿Í °°Àº ¸¹Àº Á¤º¸¸¦ ÀÔ·ÂÇÏ´Â tagÀ» »ç¿ëÇÒ °æ¿ì POST ¹æ½ÄÀÌ ÇʼöÀûÀÌ´Ù. ¾ÆÁÖ °£´ÜÇÑ °æ¿ì°¡ ¾Æ´Ï¸é POST¹æ½ÄÀ» »ç¿ëÇÒ °ÍÀ» ±Ç°íÇϰí ÀÖ´Ù. post ¹æ½Ä¿¡¼­´Â Ç¥ÁØÀÔ·ÂÀ» Àоîµé¿© ±× ³»¿ëÀ» ÇØ¼®ÇØ¾ß ÇÑ´Ù.