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
¹æ½Ä¿¡¼´Â Ç¥ÁØÀÔ·ÂÀ» Àоîµé¿© ±× ³»¿ëÀ» ÇØ¼®ÇØ¾ß ÇÑ´Ù.