WWW ¼­¹ö ºñ±³ºÐ¼®°ú ¼³Ä¡Çϱâ

Á¤ÁÖ¿ø
´ëÀü ±¤¿ª½Ã À¯¼º±¸ ±¸¼ºµ¿ 373-1
Çѱ¹°úÇбâ¼ú¿ø °æ¿µÁ¤º¸ ¿¬±¸¼¾Å¸
E-mail : jwjung@camis.kaist.ac.kr
URL : http://camis.kaist.ac.kr/~jwjung/
Abstract:

WWW server¶õ WWW¸¦ ÅëÇØ¼­ Á¢±ÙÇÒ ¼ö ÀÖ´Â ÀÚ·áµéÀ» º¸°ü, °ü¸®, ÅëÁ¦ÇÏ´Â ÇÁ·Î±×·¥À» ¸»ÇÑ´Ù. WWW´Â HTTP¶ó´Â ÇÁ·ÎÅäÄÝ·Î Åë½ÅÇϱ⠶§¹®¿¡, WWW server´Â ÈçÈ÷ httpd ¶ó°íµµ ºÒ¸°´Ù. Áö±Ý±îÁö ¿©·¯°³ÀÇ httpd°¡ ´Ù¾çÇÑ Ç÷§Æ÷¿È »ó¿¡¼­ ´Ù¾çÇÑ ¾ð¾î·Î ¾º¾îÁ® ³ª¿Ô´Ù.

º» °­ÀÇ¿¡¼­´Â httpdÀÇ ¿ªÇÒÀÌ ¹«¾ùÀΰ¡ »ìÆìº¸°í, ÇöÀç ³ª¿ÍÀÖ´Â WWW ¼­¹öµéÀ» ºñ±³ÇØ º¸°í, ±×Áß¿¡ Çϳª¸¦ ÅÃÇÏ¿© ½ÇÁ¦·Î ¼­¹ö¸¦ ¼³Ä¡, ¿î¿µÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. WWW ¼­¹ö·Î´Â CERN httpd 3.0, NCSA httpd 1.4.2, Netscape Communication Server 1.1À» ÁßÁ¡ÀûÀ¸·Î ºñ±³Çϸç, ±×Áß¿¡¼­ CERN httpd 3.0À» Áß½ÉÀ¸·Î ¼³Ä¡ ¹æ¹ý°ú ±× ¿î¿µ¿¡ ´ëÇØ¼­ »ìÆìº»´Ù. ¼³Ä¡¿Í ¿î¿µ¿¡¼­´Â ´Ü¼ø ¼³Ä¡ ¹æ¹ý»Ó ¾Æ´Ï¶ó, ƯÁ¤ °´Ã¼¿¡ ´ëÇÑ accessÁ¦ÇÑ, logÈ­ÀÏÀÇ ¿î¿µ ¹× Á¢±Ù Åë°è, chroot¸¦ ÀÌ¿ëÇÑ httpdÀÇ º¸¾Èµî ´Ù¾çÇÑ ºÎºÐÀ» ´Ù·é´Ù.

Keywords:
WWW, Server, httpd, install, NCSA, CERN, Netscape, Netsite

1. °³¿ä

1993³â NCSAÀÇ MosaicÀÌ ÀÎÅͳÝ(Internet)¿¡ ÃâÇöÇÑ ÀÌÈÄ, WWW´Â ±× ÇÁ·ÎÅäÄÝÀÇ ³×Æ®¿öÅ© »ç¿ë·®ÀÌ ¸Å³â µÎ¹è ÀÌ»óÀ¸·Î ´Ã¾î³¯ Á¤µµ·Î ¾öû³­ º¸±ÞÀ²À» ÀÚ¶ûÇÏ¸ç ºü¸¥ ¹ßÀüÀ» °ÅµìÇÏ¿© ¿Ô´Ù. ±× °á°ú Áö±ÝÀº ³×Æ®¿öÅ©¸¦ »ç¿ëÇÏ´Â »ç¶÷À̶ó¸é WWW home pageÇϳª Á¤µµ´Â °¡Áö°í ÀÖ¾î¾ß¸¸ µÇ´ÂµíÀÌ ¿©°ÜÁö°Ô µÇ¾ú´Ù.

ÈçÈ÷ Home page¶ó ¾Ë·ÁÁ® ÀÖ´Â HTML¹®¼­¸¦ Àü¼¼°èÀÇ ÀÎÅÍ³Ý »ç¿ëÀÚ°¡ »ìÆìº¼ ¼ö ÀÖÀ¸·Á¸é WWW ¼­¹ö(server)¶ó´Â °ÍÀÌ ÀÖ¾î¾ß ÇÑ´Ù. WWW´Â ±âº»ÀûÀ¸·Î HTTP¶ó´Â ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇϹǷΠhttpd¶ó°íµµ ¾Ë·ÁÁ® ÀÖ´Ù.

ÀÌ ±Û¿¡¼­´Â WWW ¼­¹ö¸¦ ¼³Ä¡ÇϰíÀÚ ÇÏ´Â ºÐµéÀ» À§ÇÏ¿©, ÇöÀç ½±°Ô ±¸ÇÒ¼ö ÀÖ´Â httpdµéÀ» ºñ±³Çϰí, ±×°ÍÀÇ ¼³Ä¡¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.

ÀÌ ¹®¼­´Â ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù. ¸ÕÀú ÀÌ¹Ì ³Î¸® ¾Ë·ÁÁø ÀÎÅÍ³Ý ¼­ºñ½ºÀÎ anonymous ftp ¼­ºñ½º¿Í WWW service¸¦ ºñ±³ÇÑ´Ù. ´ÙÀ½¿¡´Â ÇöÀç ³Î¸® ¾Ë·ÁÁø, CERN, NCSA, NetscapeÀÇ httpdµéÀ» ºñ±³ÇÏ°í °¢°¢ÀÇ Æ¯Â¡¿¡ ´ëÇØ¼­ ÀÚ¼¼È÷ ¾Ë¾Æº»´Ù. Á¦ 4 Àå¿¡¼­´Â CERN httpd 3.0À» ¼³Ä¡ÇÏ´Â °úÁ¤À» Â÷±ÙÂ÷±Ù ¼³¸íÇÑ´Ù. Á¦ 5 Àå¿¡¼­´Â httpdÀÇ ¿î¿µ»óÀÇ °í·Á»çÇ×À» ¾ð±ÞÇÑ´Ù. ¸¶Áö¸·À¸·Î °á·ÐÀ» ³»¸°´Ù.

2. httpd¸¦ ¼³Ä¡ÇÏ¿©¾ß Çϴ°¡?

ÀÌÁ¦ ´ç½ÅÀº ´ç½ÅÀÇ home page¸¦ ÀÎÅͳݿ¡ °ø°³Çϱâ·Î ¸¶À½¸Ô¾ú´Ù°í ÇÏÀÚ. ±×·¯¸é ¸Ç ¸ÕÀú ¹«¾ùÀ» ÇÏ¿©¾ß ÇÒ±î? »ç¶÷µéÀº ¾Æ¸¶ httpd¸¦ ¼³Ä¡ÇØ¾ß ÇÑ´Ù°í ÇÒ °ÍÀÌ´Ù. ¸¸¾à, ±× ÀÌÀ¯¸¦ ¹¯´Â´Ù¸é ¿©·¯°¡Áö ´ë´äÀ» ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾î¶² »ç¶÷Àº WWW°¡ HTTP¸¦ ¾²±â ¶§¹®À̶ó°í ÇÒ °ÍÀ̰í, ¾î¶² »ç¶÷Àº httpd¸¦ ¼³Ä¡ÇÏÁö ¾ÊÀ¸¸é ±×¸²°ú ±Û¾¾°¡ µé¾î°£ HTML¹®¼­¸¦ Àü¼ÛÇÒ ¼ö ¾ø±â ¶§¹®À̶ó°í ÇÒÁöµµ ¸ð¸¥´Ù. ¹«Á¶°Ç ¼³Ä¡Çؾ߸¸ ÇÑ´Ù´Â »ç¶÷µéµµ ÀÖÀ» °ÍÀÌ´Ù. ¾î¶² »ç¶÷Àº home pageÀÇ URLÀ» http·Î ½ÃÀÛÇϱâ À§Çؼ­´Â ¼³Ä¡Çؾ߸¸ ÇÑ´Ù°í ÇÒ °ÍÀÌ´Ù. ±×·¯³ª, ÁøÂ¥·Î ¼³Ä¡ÇؾßÇÑ Çϴ°¡?

ÀÌ Àå¿¡¼­´Â ÀÌ¹Ì ÀÎÅͳݿ¡¼­ ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Â anonymous ftp¼­ºñ½º¿Í http¼­ºñ½º¸¦ ºñ±³ÇÑ´Ù. ÀÌ ºñ±³´Â µÎ°¡Áö¸¦ ¸ñÀûÀ¸·Î ÇÑ´Ù. ù°, ºñ±³¸¦ ÅëÇØ httpdÀÇ Æ¯Â¡À» ¹àÈûÀ¸·Î¼­, º¸´Ù È¿À²ÀûÀÎ httpd ¿î¿µ Áö½ÄÀ» ÆÄ¾ÇÇÑ´Ù. µÑ°, ftpd¿Í httpdÀÇ ÀåÁ¡À» ÆÄ¾ÇÇÔÀ¸·Î½á, ¾î¶² ¼­ºñ½º¸¦ ½ÃÀÛÇÒ¶§ º¸´Ù ÁÁÀº µµ±¸¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.

2.1. WWWÀÇ ±¸¼º

WWWÀÇ ±¸¼º ¿ä¼Ò´Â ´ÙÀ½°ú °°ÀÌ ¼¼°¡Áö·Î ³ª´­ ¼ö ÀÖ´Ù.
HTML : Hyper-Text Markup Language
ÇÏÀÌÆÛ ÅØ½ºÆ®(hypertext)ÀÇ ±â¼ú ¹æ¹ý
URL : Uniform Resource Locator
³×Æ®¿öÅ©ÀÇ ÀÚ¿øÀ» ÁöÁ¤(identify)ÇÏ´Â ¹æ¹ý. °Ë»öÀ» À§ÇÑ ºÎºÐµµ Æ÷ÇԵǾî ÀÖ´Ù. (RFC-1738) ÀÌ¿Í À¯»çÇÑ °ÍÀ¸·Î URI, URN, RURLµîÀÌ ÀÖ´Ù.
HTTP : Hyper-Text Transfer Protocol
HTMLÀ» Æ÷ÇÔÇÑ ´Ù¾çÇÑ °´Ã¼ÀÇ Àü¼ÛÀ» À§ÇÑ °´Ã¼ Àü¼Û ±Ô¾à. Ãʱ⿡´Â HTMLÀÇ Àü¼ÛÀ» À§ÇØ ¼³°èµÇ¾úÀ¸¹Ç·Î ÇÏÀÌÆÛ ÅØ½ºÆ® Àü¼Û ±Ô¾àÀ̶õ À̸§ÀÌ ºÙ¾úÀ½.
À̰ÍÀ» º¸±â ½±°Ô ³ªÅ¸³½ °ÍÀÌ ´ÙÀ½ÀÇ <±×¸² 1>ÀÌ´Ù.


<±×¸² 1> WWWÀÇ ±¸Á¶

2.2. anonymous ftp

¾î¶² HTML¹®¼­¸¦ Àü ¼¼°è¿¡ °ø°³Çϱâ À§Çؼ­¶ó¸é, httpd¸¦ ²À ¼³Ä¡ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¾Æ½Ã´Ù½ÃÇÇ, ´ëºÎºÐÀÇ WWW browserµéÀº ftp³ª gopher, waisµîÀÇ ´Ù¸¥ ÇÁ·ÎÅäÄݵ鵵 Áö¿øÇÑ´Ù. ´õ±¸³ª, ftp·Î È­ÀÏÀ» ¹Þ¾Æ¿À´Â °æ¿ì, browser°¡ È®ÀåÀÚ¸¦ º¸°í ±×¿¡ ¸Â´Â 󸮸¦ ÇØ ÁØ´Ù. µû¶ó¼­, anonymous ftp¿¡ µé¾îÀÖ´Â HTMLÈ­Àϵµ WWW browser·Î º»´Ù¸é httpd¸¦ ÅëÇÏ¿© ³¯¾Æ¿Â HTML¹®¼­¿Í º° Â÷ÀÌ ¾øÀÌ º¸ÀδÙ.

¸¸¾à, ´ç½ÅÀÌ httpd¸¦ ¼³Ä¡Çϴµ¥ ºÎ´ãÀ» ´À³¤´Ù¸é, ÀÏ´Ü anonymous ftp¸¦ ÀÌ¿ëÇÏ¿© ¼­ºñ½º¸¦ ÇØ º¸±â ¹Ù¶õ´Ù. ftp´Â ÇÁ·ÎÅäÄÝÀÌ ¸¸µé¾î ÁøÁö ²Ï ¿À·£ ½Ã°£ÀÌ Áö³µ±â ¶§¹®¿¡ ÇÁ·ÎÅäÄÝ ÀÚü°¡ ¾ÈÁ¤È­µÇ¾î ÀÖ°í, ´Ù¾çÇÑ Ç÷§Æ÷¿È¿¡¼­ ftp daemonÀÌ °³¹ßµÇ¾ú´Ù. ´ëºÎºÐÀÇ ftp ÇÁ·Î±×·¥µéÀº ¼³Ä¡Çϱ⵵ ½±°í ¾²±âµµ ½±°Ô²û ¸¸µé¾îÁ³´Ù. ½ÉÁö¾î, Windows NT³ª Linux Slackwareµî¿¡¼­´Â ftp daemonÀÌ ±âº»ÀûÀ¸·Î ¼³Ä¡µÇ¾î ÀÖÀ» Á¤µµ´Ù.

ƯÈ÷, ¼­ºñ½º ÇÒ È­ÀÏÀÇ Å©±â°¡ Å©°í º¹ÀâÇϰųª, ³×Æ®¿öÅ© ¿¬°áÀÌ º°·Î ÁÁÁö ¾ÊÀº °÷µéÀÇ »ç¶÷À» ´ë»óÀ¸·Î ÇÏ´Â °æ¿ì¿¡´Â httpd¸¦ »ç¿ëÇϱ⠺¸´Ù´Â anonymous ftp¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. FTP´Â ±ÛÀÚ ±×´ë·Î È­ÀÏÀ» Àü¼ÛÇϱâ À§Çؼ­ ¸¸µé¾îÁø ÇÁ·ÎÅäÄÝÀ̹ǷÎ, Ç×»ó È­ÀÏÀÌ Á¦´ë·Î Àü¼ÛµÇ°í ÀÖ´ÂÁö checksumµîÀ¸·Î °Ë»çÇÏ´Â ºÎºÐÀÌ ÀÖ´Ù. (ÂüÁ¶:RFC-959) ±×¿¡ ºñÇÏ¿© HTTP´Â ´ÜÁö TCP¸¦ ÅëÇØ¼­ ±×´ë·Î Àü´ÞÇÒ »ÓÀ¸·Î, ³×Æ®¿öÅ© »óȲÀÌ ÁÁÁö ¾ÊÀº °æ¿ì HTTP¸¦ ÅëÇØ Àü´ÞµÈ È­ÀÏÀº Áß°£ÀÌ ºüÁ® Àְųª ²÷±æ °æ¿ì°¡ ¸¹´Ù.

½ÇÁ¦·Î, InternicÀÇ ¹®¼­µé Áß FYI(For Your Information)´Â ftp¸¸À» ÀÌ¿ëÇÏ¿© html¹®¼­·Î Á¦°øµÇ°í ÀÖ´Ù. (ÂüÁ¶: ftp://ftp.krnic.net/rfc/fyi-index.html)

2.3. HTTPÀÇ Æ¯Â¡

FTP´ø HTTP´ø ³×Æ®¿öÅ©¸¦ ÅëÇØ Àü´ÞÇϰíÀÚ ÇÏ´Â È­ÀÏ È¤Àº object¸¦ ÀúÀå, ½Äº°(identify)ÇÏ´Â ¹æ¹ý¿¡´Â Â÷À̰¡ ¾ø´Ù. ±×·¸´Ù¸é, HTTP´Â ÇÁ·ÎÅäÄÝÀÇ ±â´É¸é¿¡¼­ ¾î¶² ºÎºÐÀÌ FTP¿Í ´Ù¸¥°¡?

2.3.1. Search part¿Í CGI

WWW°¡ ´Ù¸¥ ¼­ºñ½º¿Í Å©°Ô ´Ù¸¥ Á¡ Áß¿¡ Çϳª´Â, ¼­¹öÃø¿¡ ½ÇÇàÈ­ÀÏÀ» µÎ¾î Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸¿¡ µû¶ó ±×¿¡ ¸Â´Â Ãâ·ÂÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.

Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸¸¦ ¹Þ±â À§ÇØ º¯ÇüµÈ URLÀ¸ µÞºÎºÐÀ» search part¶ó Çϸç, Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» ¹ÞÀº ¼­¹ö°¡ ±× ³»¿ëÀ» ¼­¹öÃø ÇÁ·Î±×·¥¿¡ ³Ñ°ÜÁÖ°í ÇÁ·Î±×·¥ÀÌ ¼­¹ö¿¡°Ô Ãâ·ÂÀ» ³Ñ°ÜÁÖ´Â ¹æ½ÄÀ» CGI(Common Gateway Interface)¶ó°í ÇÑ´Ù.

CGI¿¡ ´ëÇÑ Á» ´õ ÀÚ¼¼ÇÑ ¼³¸íÀº http://hoohoo.ncsa.uiuc.edu/cgi ¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

2.3.2. MIME typeÀ» ÅëÇÑ °´Ã¼ Á¾·ù ½Äº°

MIME(Multi-purpose Internet Mail Extension)À̶õ ÅØ½ºÆ®, È­»ó, À½¼º, µ¿¿µ»óµîÀ» Æ÷ÇÔÇÑ ÄÄÇ»ÅÍÀÇ µ¥ÀÌŸ¸¦ ÀÏ¹Ý ÅØ½ºÆ®·Î ºÎȣȭÇÏ´Â ÅëÀÏµÈ ¹æ¹ýÀÌ´Ù. MIMEÀº ÇöÀç RFC-1521, 1522·Î µî·ÏµÇ¾î ÀÖÀ¸¸ç, ÀÎÅÍ³Ý ¸ÞÀÏÀÇ Ç¥ÁØÀ¸·Î Á¤ÂøµÇ°í ÀÖ´Ù. ¾î¶² ÄÄÇ»ÅÍ ÀÚ·á°¡ MIME ±Ô¾àÀ» ÁöŲ´Ù¸é, ÀÏ¹Ý ÅØ½ºÆ® ¹Û¿¡ ÀüÇÒ ¼ö ¾ø´Â ¸ÞÀÏÀ̳ª ±×¹ÛÀÇ Åë½Å¼ö´ÜÀ» ÅëÇØ¼­ ¿©·¯ ŸÀÔÀÇ ÄÄÇ»ÅÍ µ¥ÀÌŸ¸¦ ÁÖ°í ¹ÞÀ» ¼ö ÀÖ´Ù.

MIME±Ô¾àÀº ¾ÕºÎºÐ(header)¿¡¼­ Àü¼ÛµÇ´Â ¸Þ½ÃÁöÀÇ Á¾·ù¸¦ Content-TypeÀ̶õ ÇüÅ·Πǥ½ÃÇϵµ·Ï ¿ä±¸ÇÑ´Ù. Content-TypeÀº major-type/minor-type [arguments]ÀÇ ÇüÅÂÀε¥, major-typeÀ¸·Î´Â text, image, audio, video, message, applicaition, multipartµîÀÌ µÉ ¼ö ÀÖ´Ù. minor-typeÀº major-typeÀÌ ¹«¾ùÀ̳Ŀ¡ µû¶ó ´Þ¶óÁø´Ù. ¿¹¸¦ µé¾î JPEG È­ÀÏÀ̶ó¸é ÀÌ È­ÀÏÀÇ MIME content typeÀº image/jpeg°¡ µÈ´Ù. GIF·Î È­ÀÏÀ̶ó¸é, image/gif°¡ µÇ¸ç, .auÈ­ÀÏÀ̶ó¸é audio/basicÀÌ µÈ´Ù.

°ø½ÄÀûÀÎ MIME content typeÀº IANA(Internet Assigned Numbers Authority) °ü¸®ÇÑ´Ù. °ø½ÄÀûÀÎ MIME content type¿¡ °üÇÑ Á¤º¸´Â ftp://ftp.isi.edu/in-notes/iana/assignments/media-types À̳ª, °¡Àå ÃÖ±ÙÀÇ "ASSIGNED NUMBERS" ¹®¼­ (95³â ÇöÀç RFC-1700) ¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.

HTTP´Â Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö°£ÀÇ °´Ã¼ Àü¼Û½Ã¿¡ MIME ±Ô¾àÀ» »ç¿ëÇϵµ·Ï ±ÔÁ¤ÇÑ´Ù. µû¶ó¼­, Ŭ¶óÀÌ¾ðÆ®³ª ¼­¹ö´Â ¾î¶°ÇÑ µ¥ÀÌŸ¶óµµ ÁÖ°í ¹ÞÀ» ¼ö ÀÖ°í, ¶ÇÇÑ ÀÚ½ÅÀÌ ¹ÞÀº °´Ã¼°¡ ¾î¶² ÇüÅÂÀÎÁö¸¦ ¾Ë ¼ö ÀÖ´Ù. Ŭ¶óÀÌ¾ðÆ®³ª ¼­¹ö´Â ÀÚ½ÅÀÌ ¼ö½ÅÇÑ °´Ã¼ÀÇ ÇüÅ¿¡ ¸Â´Â 󸮸¦ ÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº È­ÀÏ À̸§ÀÇ È®ÀåÀÚ¸¦ º¸°í ±× È­ÀÏÀÇ ÇüŸ¦ ÆÄ¾ÇÇÏ´Â °Í°ú´Â ´Ù¸¥ ¹æ½ÄÀÌ´Ù.


<±×¸² 2> MIME type 󸮰¡ ÇÊ¿äÇÑ °æ¿ì

<±×¸² 2>¸¦ º¸ÀÚ. ¼­¹ö A¿¡¼­ .docÈ­ÀÏÀÌ ÀǹÌÇÏ´Â ¹Ù´Â ÀÏ¹Ý ÅØ½ºÆ® È­ÀÏÀ̶ó°í ÇÏÀÚ. ¼­¹ö B¿¡¼­ .docÈ­ÀÏÀº Microsoft Word 6.0È­ÀÏÀ̶ó°í ÇÏÀÚ. ¸¸¾à, È­ÀÏÀÇ È®ÀåÀÚ ¸¸À¸·Î °¢ ¹®¼­ÀÇ ÇüŸ¦ °í·ÁÇÑ´Ù°í Çϸé, ¼­¹ö A¸¦ ÀÚÁÖ ÀÌ¿ëÇÏ´ø »ç¶÷, Áï, ¼­¹ö AÀÇ È®ÀåÀÚ¿¡ ¸ÂÃ߾ »ç¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®´Â ¼­¹ö B¸¦ ¿¬°áÇßÀ»¶§ ÀüÇô ¾û¶×ÇÑ ¹®ÀÚ¿­ (MS word 6.0 format)À» º¼ ¼ö ¹Û¿¡ ¾ø´Ù. ¼­¹ö B¸¦ ÀÚÁÖ »ç¿ëÇÏ´ø »ç¶÷Àº ´Ü¼ø ÅØ½ºÆ® È­ÀÏÀ» º¸±â À§Çؼ­ MS Word¸¦ °¡µ¿½ÃŰ°Ô µÈ´Ù.

±×·¯³ª, Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö°£ÀÇ ±³È¯À» MIME±Ô¾àÀ¸·Î ÅëÀÏÇϰí, °¢ ¼­¹ö¿¡¼­ .docÈ­ÀÏ¿¡ ´ëÇØ Content-TypeÀ» text/plain (´Ü¼ø ÅØ½ºÆ®)°ú application/x-ms-word6 (»ç¿ëÀÚ Á¤ÀÇ ÀÀ¿ëÇÁ·Î±×·¥)À¸·Î ÁöÁ¤ÇÏ¿© ÁØ´Ù¸é ¹®Á¦´Â ¾à°£ ´Þ¶óÁø´Ù. ¸ÕÀú ¼­¹ö AÀÇ .docÈ­ÀÏÀº ´Ü¼ø ÅØ½ºÆ®¶ó´Â °ÍÀ» ¾î´À Ŭ¶óÀÌ¾ðÆ®¿¡¼­µçÁö ¾Ë ¼ö ÀÖÀ¸¹Ç·Î, ±×¿¡ ¸Â´Â viewer¸¦ °¡µ¿½ÃŲ´Ù. ¼­¹ö BÀÇ .docÈ­ÀÏÀ» ÀÐÀº ÀûÀÌ ¾ø´Â Ŭ¶óÀÌ¾ðÆ®´Â, ¼­¹ö BÀÇ MS WordÈ­ÀÏÀ» ÀÐ°Ô µÉ ¶§ application/x-ms-word6¶ó´Â »õ·Î¿î MIME type¿¡ ´ëÇÑ ¼³Á¤À» »ç¿ëÀÚ¿¡°Ô ¿ä±¸ÇÑ´Ù. »ç¿ëÀÚ´Â application/x-ms-word6¶ó´Â MIME content typeÀÇ À̸§À» º¸°í MS Word 6.0È­ÀÏ ÇüŶó´Â °ÍÀ» ÁüÀÛÇϰí ÀÌ MIME content type¿¡ ´ëÇØ¼­´Â MS Word 6.0ÀÌ Ã³¸®Çϵµ·Ï ¼³Á¤ÇÑ´Ù. ±×·¯¸é, Â÷ÈÄ Ãß°¡µÇ´Â ´Ù¸¥ ¼­¹öÀÇ application/x-ms-word6¹®¼­¿¡ ´ëÇØ¼­µµ Ŭ¶óÀÌ¾ðÆ®´Â ÀÚµ¿À¸·Î MS Word 6.0À» °¡µ¿ÇÑ´Ù.

½ÇÁ¦ ¼­¹ö ¿î¿µ»ó¿¡ À־ È­ÀÏ È®ÀåÀÚ¿Í MIME content typeÀ» ¿¬°áÇϱâ À§Çؼ­´Â ¼­¹öÃøÀÇ configuration fileÀ» °íÃÄÁÖ¸é µÈ´Ù.

CERN ¼­¹ö´Â configuration file¿¡ AddType directive¸¦ »ç¿ëÇÏ¿© È­ÀÏ È®ÀåÀÚ¿Í MIME content typeÀ» ¿¬°áÇÒ ¼ö ÀÖ´Ù.

NCSA ¼­¹ö³ª NetSite ¼­¹öÀÇ °æ¿ì¿¡´Â conf directory¿¡ ÀÖ´Â mime.types È­Àϳ»¿ëÀ» °íħÀ¸·Î¼­ ¼­¹ö Àüü¿¡ ´ëÇØ¼­ È­ÀÏ È®ÀåÀÚ¿Í MIME content typeÀ» ¿¬°áÇÒ ¼öµµ ÀÖ°í, .htaccess È­ÀÏ¿¡¼­ AddType directive¸¦ »ç¿ëÇÔÀ¸·Î½á ¾î¶² directory¾È¿¡¼­¸¸ È­ÀÏ È®ÀåÀÚ¿Í MIME content typeÀ» ¿¬°áÇÒ ¼öµµ ÀÖ´Ù.

2.3.3. Content negotiation

Content negotiationÀ̶õ Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö°¡ ¼­·Î ÇùÀÇÇÏ¿©, Ŭ¶óÀÌ¾ðÆ® Ãø¿¡¼­ 󸮰¡´ÉÇÑ °´Ã¼ ÇüÅÂ, ºÎȣȭ, ÀÚ¿¬¾îµîÀ» ¼­¹ö°¡ °ñ¶ó¼­ Á¦°øÇØ ÁÖ´Â °ÍÀ» ¸»ÇÑ´Ù.

HTTPÀÇ Request headerÁß¿¡¼­ Accept, Accept-Encoding, Accept-Language µîÀ» Ãß°¡ÇÏ¿© ±¸ÇöµÇ¾ú´ø °ÍÀ¸·Î, HTTP 1.0 Ãʱâ draft¿¡ µé¾îÀÖ¾ú´Ù°¡ HTTP 1.1·Î ¿¬±âµÇ¾ú´Ù.

ÀÏ¹Ý MIME contentÀÇ negotiation ±â´ÉÀº Apache ServerÀÌ Áö¿øÇÒ °èȹÀ¸·Î ÀÖ´Ù. ÀÚ¿¬¾ð¾îÀÇ negotiation ±â´ÉÀº CERN httpd¿Í NTTÀÇ Mosaic-L10NÀÌ Áö¿øÇÑ´Ù.

3. httpdÀÇ ºñ±³

3.1. °í·Á ´ë»óÀÇ httpdµé

ÀÌ Àå¿¡¼­´Â ÇöÀç ³ª¿ÍÀÖ´Â httpdµé Áß¿¡ °¡Àå ³Î¸® ¾Ë·ÁÁø CERN httpd 3.0, NCSA httpd 1.4.2, ±×¸®°í Netsite·Î ¾Ë·ÁÁø Netscape Communication Server 1.1, ¼¼°³¸¦ °ñ¶ó ºñ±³ÇÑ´Ù.

¸ÕÀú °¢ httpd¿¡ ´ëÇØ¼­ °£´ÜÈ÷ ¾Ë¾Æº»´Ù.

CERN httpd
WWWÀÇ ¿ø»êÀÎ CERN¿¡¼­ Ari Luotonen, Henrik Frystyk, Tim Berners-Lee µî¿¡ ÀÇÇØ¼­ Á¦À۵Ǿú´Ù. ±â·Ï¿¡ ÀÇÇϸé 1991³â 6¿ù óÀ½À¸·Î version 0.1ÀÌ ³ª¿Ô´Ù. Tim Berners-LeeÀÇ WWWÀÇ idea¸¦ ±¸ÇöÇÏ´Â °ÍÀÌ ¸ñÀûÀ¸·Î ¸¸µé¾îÁø °ÍÀ¸·Î ¹«¾ùº¸´Ùµµ HTTPÀÇ ±âº» ¾ÆÀ̵ð¾î°¡ Ãæ½ÇÇÏ°Ô ±¸ÇöµÇ¾î ÀÖ´Ù. ¶ÇÇÑ, WWW library functionµéÀ» ÀÌ¿ëÇÏ¿© ±¸¼ºµÇ¾ú´Ù.
NCSA httpd
MosaicÀ» ¸¸µé¾î¼­ À¯¸íÇØÁø NCSA¿¡¼­ °³¹ßÇÑ °Í. Rob McCoolÀÌ ÁÖµ¿ÀÌ µÇ¾î Á¦À۵Ǿú´Ù. NCSA httpdÀÇ ¸ñÀûÀº CERNÀÇ httpdº¸´Ù ½Ç¸®ÀûÀ¸·Î ¾µ¸¸ÇÑ °ÍÀ» ¸¸µå´Â°Ô ÀÖ¾ú´Ù. version 1.3±îÁö´Â httpdÀÇ ±â¾ï¿ë·®À» ÁÙÀÓÀ¸·Î½á ÁÖ ¸Þ¸ð¸®(RAM) ¿ë·®ÀÌ ¾ó¸¶ ¾ÈµÇ´Â ÄÄÇ»ÅÍ¿¡¼­µµ ¾µ ¼ö ÀÖµµ·Ï ÇßÀ¸¸ç, 1.4ºÎÅÍ´Â ¹ÝÀÀ ¼Óµµ¸¦ ºü¸£°ÔÇϴµ¥ Ä¡ÁßÇϰí ÀÖ´Ù.
Netsite Server
NetscapeÀ¸·Î À¯¸íÇÑ Netscape»çÀÇ httpd. Á¤½Ä ¸íĪÀº Netscape Communication Server¿Í Netscape Commerce Server. ÀÏ¹Ý »ó¿ë ¼­¹öµé°ú´Â ´Þ¸® ±³À°±â°ü¿¡¼­´Â ¹«·á·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡°ú Netscape ÀÚü¸¦ ÀÌ¿ëÇÑ GUI °ü¸®ÀÚ µµ±¸°¡ Àִٴ Ư¡¶§¹®¿¡ ÀϹݿ¡°Ô ³Î¸® ¾Ë·ÁÁü. ¶ÇÇÑ, Commerce ServerÀÇ °æ¿ì Netscape»çÀÇ browserÀÎ Mozilla¿Í SSL(Secure socket Layer)À» ÅëÇÑ º¸¾È ä³Î À¯Áö°¡ °¡´ÉÇϱ⠶§¹®¿¡ ÀÎÅÍ³Ý »óÁ¡µî¿¡¼­ ¸¹ÀÌ »ç¿ëÇϰí ÀÖ´Ù.
ÀÌ ÀÌÈĺÎÅʹ Ư¡µéÀ» ³ª¿­Çϰí, ±× Ư¡ÀÌ °¡Áö´Â ÀÇ¹Ì¿Í ½ÇÁ¦ »ç¿ë½Ã ¾î¶² °ÍµéÀ» ÂüÁ¶ÇÏ¿©¾ß ÇÏ´ÂÁö¸¦ À̾߱â ÇϰڴÙ.

3.2. Server-side include

Server-side include¶õ ¼­¹ö³»¿¡ ÀúÀåµÇ¾î ÀÖ´Â ¹®¼­°¡ ´Ù¸¥ ¹®¼­¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» ¸»ÇÑ´Ù. ´Ù¸¥ ¹®¼­¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖµµ·Ï HTMLÀ» º¯ÇüÇÑ °ÍÀ» SHTML(Server-parsed HTML)À̶ó°í ÇÑ´Ù. (SHTMLÀÇ ¹®¹ý¹× »ç¿ë¹æ¹ýµî ÀÚ¼¼ÇÑ »çÇ×Àº NCSA httpd server side includes ¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.)

* ½ÇÁ¦ »ç¿ë

NCSA httpd
$SERVERROOT/conf/srm.conf:
AddType text/x-server-parsed-html .shtml
NetSite
CGI and Server Parsed HTML/Customize server parsed HTML on your server
CGI and Server Parsed HTML/Add a custom signature to files

3.3. Proxy server

Proxy server¶õ, <±×¸² 3>°ú °°ÀÌ ¹æÈ­º®(firewall)À¸·Î ¿ÜºÎ ³×Æ®¿öÅ©¿Í Â÷´ÜÀÌ µÇ¾îÀÖÀ» °æ¿ì, ¿ÜºÎÀÇ ³×Æ®¿öÅ© ¼­ºñ½ºµéÀ» ´ë½Å ¿¬°áÇØ¼­ ±× °á°ú¸¦ ³Ñ°ÜÁÖ´Â HTTP daemonÀ» ¸»ÇÑ´Ù. Proxy serverÀÚ½ÅÀº firewallÀÇ ³»ºÎ È£½ºÆ®¿Í ¿ÜºÎ È£½ºÆ® ¾çÂÊ¿¡ ´Ù Á¢¼ÓÇÒ ¼ö ÀÖ¾î¾ß ÇϹǷΠ´ëü·Î ¹æÈ­º® È£½ºÆ®¿¡ ¼³Ä¡µÇ´Â °ÍÀÌ º¸ÅëÀÌ´Ù.


<±×¸² 3> Proxy serverÀÇ °³³ä

Proxy ¼­¹ö´Â ´ëÇà ¾÷¹« ÀÌ¿ÜÀÇ ¸ñÀûÀ¸·Î »ç¿ëµÇ±âµµ ÇÑ´Ù. ù°·Î, proxy ¼­¹ö ³»¿¡ cache¸¦ ¼³Ä¡ÇÏ¿© ÀÚÁÖ ¿äûµÇ´Â ¹®¼­´Â cache¿¡ ÀúÀåÇÑ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á °ü¸®ÀÚÀÇ ÀÔÀå¿¡¼­´Â ¿ÜºÎ ³×Æ®¿öÅ© »ç¿ë¾çÀ» ÁÙÀδٴ ȿ°ú¸¦ ¾òÀ» ¼ö ÀÖÀ¸¸ç, »ç¿ëÀÚ´Â º¸´Ù ºü¸¥ ¼­ºñ½º¸¦ ¹ÞÀ»¼ö ÀÖ´Ù.

µÎ¹øÂ°ÀÇ ¸ñÀûÀº Protocol gateway·Î¼­ »ç¿ëµÇ´Â °æ¿ìÀÌ´Ù. WAISÀÇ °æ¿ì WAIS ÇÁ·ÎÅäÄÝÀ» ó¸® ÇÒ ¼ö Àִ Ŭ¶óÀÌ¾ðÆ®µµ ÀÖÁö¸¸, ¾ø´Â Ŭ¶óÀÌ¾ðÆ®µéµµ ¸¹´Ù. ¸¸¾à WAIS ÇÁ·ÎÅäÄÝÀ» ó¸®ÇÒ ¼ö ÀÖ´Â proxy ¼­¹ö°¡ ÀÖ´Ù¸é, WAIS¸¦ ó¸® ÇÒ ¼ö ¾ø´Â Ŭ¶óÀÌ¾ðÆ®¶óµµ WAIS¿¡ ´ëÇØ¼­ proxy ¼­¹ö ¼³Á¤À» ÇÔÀ¸·Î¼­ ¸¶Ä¡ WAIS ÇÁ·ÎÅäÄÝ ÇØ¼®±â¸¦ ºÙÀΰͰú °°Àº È¿°ú¸¦ ³¾ ¼ö ÀÖ´Ù. (Proxy Ŭ¶óÀÌ¾ðÆ®¿Í proxy ¼­¹ö¿Í´Â HTTP·Î¸¸ ¿¬°áµÈ´Ù´Â »ç½ÇÀ» ±â¾ïÇÏÀÚ.) Proxy ¼­¹ö¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ ³»¿ëÀº World-Wide Web Proxies [Luotonen94b]¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

* ½ÇÁ¦ »ç¿ë

CERN httpd
/etc/httpd.conf:
Map	file:*	ftp:*
Pass	http:*
Pass	ftp:*
Pass	gopher:*
Pass	news:*
Pass	wais:*

Caching On
CacheRoot	/root/proxy-cache
CacheSize	200M
NoCaching	http://*.kr/*
NoCaching	http://*.kr:*/*
NoCaching	http://*.nuri.net/*

3.4. Server pool

Server poolÀ̶õ ¼­¹ö ÇÁ·Î¼¼½º¸¦ ¹Ì¸® ¸î°³ ¸¸µé¾î ³õ°í, ¿¬°á¿ä±¸°¡ µé¾î¿À´Â´ë·Î ´ë±âÇϰí ÀÖ´Â ¼­¹ö ÇÁ·Î¼¼½º¿¡°Ô ÀÏÀ» ÇÒ´çÇÏ´Â ¹æ½ÄÀÌ´Ù. À̰ÍÀº ¿¬°á¿ä±¸°¡ µé¾î¿Ã¶§ ¸¶´Ù (´ÙÀ½ ¿¬°á¿ä±¸¸¦ ±â´Ù¸®±â À§ÇØ) ¼­¹ö ÇÁ·Î¼¼½º¸¦ »õ·Î »ý¼ºÇØ ³»´Â(fork) ´Ü¼ø multi-serverÀÇ °æ¿ì¿Í ºñ±³ÇØ º¼¶§, ¼­¹ö¸¦ »õ·Î »ý¼ºÇÏ´Â ½Ã°£À» ÁÙÀÓÀ¸·Î¼­ º¸´Ù ºü¸¥ ¹ÝÀÀ ½Ã°£À» ¾òÀ» ¼ö ÀÖ´Ù. <±×¸² 4>¿¡ ÀÌ µÎ°¡Áö ¹æ½ÄÀ» ºñ±³ÇÏ¿´´Ù.


<±×¸² 4> ´Ü¼ø multi-server¿Í server pool±¸Á¶

UNIX¿¡¼­ fork´Â »ó´çÈ÷ ½Ã°£°É¸®´Â ÀÛ¾÷Áß¿¡ ÇϳªÀ̹ǷÎ, server pool ±¸Á¶´Â ¿¬°á¿ä±¸°¡ ¸¹À» °æ¿ì »ó´çÇÑ ¼º´É Çâ»óÀ» °¡Á®¿Â´Ù. ÃÊ´ç ó¸®ÇÒ ¼ö ÀÖ´Â ÃÖ´ë ¿¬°á¿ä±¸ ¼ö¸¦ ½ÇÇèÀûÀ¸·Î ¾ò±â À§ÇÏ¿© HP735 ¿öÅ©½ºÅ×À̼ǿ¡¼­ ½ÃÇèÇØº» °á°ú, ¾à 2¹èÁ¤µµ Áõ°¡ÇÑ´Ù´Â °á°ú°¡ [McGrath95]¿¡ ½Ç·ÁÀÖ´Ù.

ƯÈ÷, Netscape Mozilla¿Í °°ÀÌ ÇѲ¨¹ø¿¡ ´ÙÁß ¿¬°á¿ä±¸¸¦ ¼öÇàÇÏ´Â browserµé¿¡°Ô´Â server pool ±¸Á¶´Â ¹ÝÀÀ½Ã°£À̶ó´Â Ãø¸é¿¡¼­ È¿°úÀûÀÌ´Ù. ±×·¯³ª, ¿¬°á¿ä±¸°¡ ¾ø¾îµµ ÀÏÁ¤°¹¼öÀÇ ¼­¹ö ÇÁ·Î¼¼½º°¡ ´ë±âÇϰí ÀÖ¾î¾ß Çϱ⠶§¹®¿¡ process slot°ú ÁÖ±â¾ïÀåÄ¡ µîÀ» Ç×»ó Â÷ÁöÇϰí ÀÖ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù.

* ½ÇÁ¦ »ç¿ë

NCSA httpd
$SERVERROOT/conf/httpd.conf:
StartServers 5
MaxServers 20
NetSite
Server Control/System Specifics

3.5. Custom Error Responses

Custom error responses¶õ HTTP error(¿¹: 404 Not Found)°¡ ¹ß»ýÇÏ´Â °æ¿ì ¿¡·¯ ¸Þ½ÃÁö¸¦ ³»Áö ¾Ê°í ÁöÁ¤µÈ HTML¹®¼­ ȤÀº CGI scriptÀÇ ½ÇÇà °á°ú¸¦ Àü¼ÛÇÏ´Â ¹æ¹ýÀÌ´Ù.

ÀÌ ¹æ¹ýÀº »ç¿ëÀÚ·Î ÇÏ¿©±Ý ¼­¹öÀÇ °áÁ¡À» º¸ÀÌÁö ¾Ê°Ô Çϰųª ¼­¹ö ¿¡·¯¿¡ ½±°Ô ´ëóÇÏ°Ô ÇÒ °æ¿ì ¸Å¿ì À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀº NCSA httpd »ç¿ëÀÚ ¸Å´º¾óÀÇ ErrorDocument ºÎºÐÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.

* ½ÇÁ¦ »ç¿ë

NCSA httpd
$SERVERROOT/conf/srm.conf:
ErrorDocument 401 /errors/auth-required.html
ErrorDocument 403 /errors/forbidden.html
NetSite
Error handling/Customize error responses

3.6. ´ÙÁß¾ð¾î Áö¿ø

Àü¼¼°èÀÇ ÀڷḦ ½±°Ô »ìÆìº¼ ¼ö ÀÖ´Ù´Â WWWÀÇ Æ¯¼º»ó WWW browser´Â ¿©·¯ ¾ð¾î¸¦ Áö¿øÇÒ ¼ö ÀÖ¾î¾ß Çϸç, ServerÀÇ °æ¿ì¿¡µµ ¿©·¯ ¾ð¾î¸¦ Áö¿øÇÒ Çʿ䰡 ÀÖ´Ù. ÇöÀç ±¹Á¦È­(Internationalization;I18N)À» À§ÇÑ ÀÛ¾÷ÀÌ ÁøÇàÁßÀÌ´Ù.

CERN server´Â Ãʱâ HTTP 1.0 draft¿¡ Æ÷ÇԵǾî ÀÖ¾ú´ø Accept-Language: Çì´õ¸¦ ÅëÇÑ ÀÚ¿¬¾ð¾î negotiationÀÌ ±¸ÇöµÇ¾î ÀÖ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº CERN httpd User's GuideÀÇ AddLanguage directive¿¡ °üÇÑ ºÎºÐÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù. ¿©±â¼­ ÀÚ¿¬¾ð¾î¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº ISO-639 Language Codes ¿Í ISO-3166 Country Codes ¿¡ ±Ù°ÅÇϰí ÀÖ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº RFC-1766 Tags for the Identification of Languages ¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

NetSiteÀÇ °æ¿ì¿¡´Â text/* MIME typeÀÇ charset argument¸¦ ÅëÇØ¼­ ÇöÀç Àü´ÞµÇ´Â ¹®¼­°¡ ¾î¶² ÄÚµå·Î ºÎȣȭµÇ¾î ÀÖ´ÂÁö ¾Ë·ÁÁÖ´Â ¹æ½ÄÀ» ÅÃÇϰí ÀÖ´Ù.

* ½ÇÁ¦ »ç¿ë

CERN httpd
/etc/httpd.conf:
AddLanguage	ko_KR	.ko
AddLanguage	en	.en
NetSite
International Configuration/Document Character set

4. ¼­¹öÀÇ ¼³Ä¡

º» Àå¿¡¼­´Â CERN httpd¸¦ Áß½ÉÀ¸·Î ½ÇÁ¦ server ¼³Ä¡ ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.

4.1. ÇÁ·Î±×·¥ °¡Á®¿À±â

CERN httpd¸¦ °¡Á®¿À±â Àü¿¡ source¸¦ »õ·Î compileÇÒ °ÍÀΰ¡, ¾Æ´Ï¸é ±×³É °£ÆíÇÏ°Ô binary¸¦ °¡Á®¿Ã °ÍÀΰ¡¸¦ °áÁ¤ÇØ¾ß ÇÑ´Ù. ¸¸¾à httpd¸¦ ¼³Ä¡ÇϰíÀÚ ÇÏ´Â host¿¡ compiler°¡ ¾ø´Ù¸é binary¸¦ °¡Á®¿Í¾ß ÇÒ °ÍÀÌ´Ù. ±×·¯³ª compiler°¡ ÀÖ°í, ¼³Ä¡ÇÏ´Â »ç¶÷ÀÌ compile¿¡ ÀÚ½ÅÀÌ ÀÖ´Ù¸é ¿øº»À» °¡Á®¿Í¼­ compileÀ» Çϴ°ÍÀÌ ÁÁ´Ù. ¿Ö³ÄÇϸé, dynamic linking libraryÀÇ ¹öÁ¯¹®Á¦¿Í °°Àº compileµÈ ȯ°æ°úÀÇ Â÷À̸¦ ÁÙÀϼö ÀÖÀ¸¸ç, patch°¡ ¹ßÇ¥µÉ °æ¿ì patch¸¦ ÀÔÈ÷±âµµ ½¬¿ï »Ó ¾Æ´Ï¶ó, ÇÊ¿äÇÑ °æ¿ì httpdÀÚü¸¦ °íÄ¥ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù.

CERN httpdÀÇ sourceÇÁ·Î±×·¥ ¶Ç´Â binaryÀÇ ¿øº»Àº ftp://ftp.w3.org/pub/httpd ¿¡ ÀÖ´Ù. source´Â httpd_3.0_src.tar.Z¶õ À̸§À¸·Î ÀúÀåµÇ¾î ÀÖÀ¸¸ç, binary´Â http_3.0_bin.os_type.tar.ZÀÇ À̸§À¸·Î ÀúÀåµÇ¾î ÀÖ´Ù. ¿Ü±¹¿¡¼­ Á÷Á¢ °¡Á®¿À´Â °æ¿ì´Â ¸Å¿ì ´À¸° ÆíÀ̹ǷÎ, ´ëü·Î mirror site¶ó´Â µ¥¼­ ±¸ÇÏ´Â °ÍÀÌ º¸ÅëÀÌ´Ù. KAIST³ª ´ëÀü Áö¿ªÀÇ °æ¿ì ftp://ftp.kaist.ac.kr/pub/www/W3C/httpd ¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.

binary¸¦ °¡Á®¿À´Â °æ¿ì ¸î°¡Áö ÁÖÀÇÇÒ »çÇ×ÀÌ ÀÖ´Ù. ¹«¾ùº¸´Ùµµ ¸ÕÀú, ¼³Ä¡ÇϰíÀÚ ÇÏ´Â ±â°èÀÇ OS°¡ ¹«¾ùÀÎÁö È®½ÇÈ÷¾Ë Çʿ䰡 ÀÖ´Ù. Àý´ë·Î ÃßÃøÇØ¼­´Â ¾ÈµÈ´Ù. ¸¸¾à È®½ÅÇÒ ¼ö ¾ø´Ù¸é uname -a¶ó´Â ¸í·ÉÀ» ¼öÇàÇØ º¸±â ¹Ù¶õ´Ù.

SunÀÇ °æ¿ì¿¡´Â binaryÀÇ Á¾·ù¿¡ ½Å°æÀ» ¾µ Çʿ䰡 ÀÖ´Ù. ¸ÕÀú +lresolv¶ó´Â °ÍÀÌ ºÙ¾îÀÖ´Â °æ¿ìÀε¥, À̰ÍÀº hostname lookup½Ã name server¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î, ÀÚ½ÅÀÇ host°¡ /etc/hostsÈ­ÀÏ¿¡ ÀúÀåµÇ¾î Àִ ȣ½ºÆ®°¡ ¾Æ´Ï¸é hostnameÀ¸·Î ¿¬°áÇÒ ¼ö ¾øÀ» °æ¿ì ÇÊÈ÷ ÀÌ binary¸¦ ¼³Ä¡ÇÏ¿©¾ß ÇÑ´Ù. +wais¶ó°í ºÙ¾îÀÖ´Â °ÍÀº WAIS proxy code°¡ Ãß°¡µÇ¾î ÀÖ´Â °ÍÀ¸·Î¼­, WAIS proxy¸¦ ¿î¿µÇÏ·Á ÇÑ´Ù¸é ÀÌ binary¸¦ °¡Á®¿Í¾ß¸¸ ÇÑ´Ù.

¶ÇÇÑ htadm, cgiparse, htimage¿Í °°Àº ÇÁ·Î±×·¥À» »ç¿ëÇϰíÀÚ ÇÑ´Ù¸é http_utils_3.0_bin.os_type.tar.ZÀ̶õ È­Àϵµ °°ÀÌ °¡Á®¿Í¾ß¸¸ ÇÑ´Ù.

´Ù¸¥ ¼­¹öÀÇ °æ¿ì

NCSA httpdÀÇ °æ¿ì ¿øº» ÀúÀå¼Ò´Â ftp://ftp.ncsa.uiuc.edu/Web/httpd/Unix/ncsa_httpd/httpd_1.4 À̰í, ´ëÀüÁö¿ªÀÇ °æ¿ì ftp://ftp.kaist.ac.kr/pub/www/NCSA/httpd/Unix/ncsa_httpd/httpd_1.4 ¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. source´Â httpd_1.4.2_source.tar.Z·Î binary´Â httpd_1.4.2_os_type.tar.Z·Î ÀúÀåµÇ¾î ÀÖÀ¸¸ç, CERN°ú´Â ´Ù¸£°Ô º°µµ·Î °¡Á®¿Í¾ß ÇÒ È­ÀÏÀº ¾ø´Ù. ´Ü, httpd¸¸À» µû·Î °¡Á®¿À·Á ÇÑ´Ù¸é httpd_1.4.2_os_type.Z¸¦ °¡Á®¿À¸é µÈ´Ù.

NetSite´Â Netscape Server Test Drive ÆäÀÌÁö¿¡¼­ ÀÚ½ÅÀÇ ½ÅºÐÀ» ¹àÇôÁÖ¸é, ½ÃÇè¿ë code¸¦ ¾òÀ» ¼ö ÀÖ´Ù. »ó¾÷ ±â°ü¿¡¼­´Â 60Àϰ£ÀÇ ½ÃÇè »ç¿ëÀÌ Çã¶ôµÇ¸ç, ±³À°±â°üÀÇ °æ¿ì ¹«·á·Î »ç¿ëÀÌ °¡´ÉÇÏ´Ù.

4.2. È­ÀÏ Ç®±â¿Í ÄÄÆÄÀÏ

´ëºÎºÐÀÇ È­ÀÏÀº tar.Z·Î µÇ¾î ÀÖÀ¸¹Ç·Î ´ÙÀ½°ú °°ÀÌ Ç® ¼ö ÀÖ´Ù.

zcat httpd_3.0_src.tar.Z | tar xf -
source code¸¦ Ǫ´Â °æ¿ì¿¡´Â WWW¶ó´Â directory°¡, binary¸¦ Ǫ´Â °æ¿ì¿¡´Â cern_httpd_3.0À̶ó´Â directory°¡ »ý±ä´Ù.

ÄÄÆÄÀÏÀÇ ¹æ¹ýÀº °£´ÜÇÏ´Ù. WWW directory·Î µé¾î°¡¼­ ´ÜÁö ./BUILD¶ó°í ÃÄ ÁÖ¸é, BUILD script´Â ÇØ´ç systemÀÇ OStypeÀ» ÆÄ¾ÇÇÏ¿© ±×¿¡ ¸Â°Ô compileÀ» ½ÃÀÛÇÑ´Ù. ¸¸¾à Á¦´ë·Î compileÀÌ ¾ÈµÇ´Â °æ¿ì WWW/All/os_typeMakefile.include ¸¦ »ìÆìº¸°í ÇöÀç ÀÚ½ÅÀÇ system¿¡ ¸Â°Ô²û °íÃÄÁÖ°í ´Ù½Ã BUILD¸¦ ¼öÇàÇÑ´Ù.

¸¸¾à WAIS proxy¸¦ °èȹÇϰí ÀÖ´Ù¸é freewais¸¦ ±¸Çؼ­ °°ÀÌ compileÇÏ¿©¾ß ÇÑ´Ù. freewais´Â ¹«·á WAIS ÇÁ·Î±×·¥ÀÌ´Ù.

Á»´õ ÁÁÀº ¼º´ÉÀÇ proxy server¸¦ ¿øÇÑ´Ù¸é Known Bugs in HTTPD ÆäÀÌÁö¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ ÁÁ´Ù. À̰÷¿¡´Â httpdÀÇ ¿À·ù ¹× ¼º´ÉÇâ»óÀ» À§ÇÑ patchµéÀ» ¼Ò°³Çϰí ÀÖ´Ù. (ÃÖ±Ù¿¡´Â NetscapeÀÇ SSL¿ë proxy server·Î ¸¸µé±â À§ÇÑ patch±îÁö ³ª¿Í ÀÖ´Ù.)

4.3. ±âº» ¹èÄ¡

ÀÌÁ¦ ¼³Ä¡ÇÒ È­ÀϵéÀÌ ¸ðµÎ ¸¶·ÃµÇ¾úÀ¸¸é, ÀÌ È­ÀϵéÀ» ¾îµð¿¡ µÑ °ÍÀÎÁö »ý°¢ÇØ µÑ Çʿ䰡 ÀÖ´Ù.

httpd¿¡ °ü·ÃµÈ È­ÀϵéÀ» ¿©±âÀú±â Èð¾î³õÀ¸¸é ³ªÁß¿¡ °ü¸®ÇϱⰡ ¸Å¿ì ±Íï¾Æ Áö±â ½±´Ù. µû¶ó¼­, server configuration¿¡¼­µµ °ü·Ã È­ÀϵéÀ» ¾î¶² directory¹Ø¿¡ ¸ð¾ÆµÎ´Â °ÍÀ» Àå·ÁÇϴµ¥, ±× Àå¼Ò¸¦ Server Root¶ó°í ÇÑ´Ù. Server Root´Â UNIX directory±¸Á¶»ó ƯÁ¤ÇÑ Àå¼Ò¾Æ ¾Æ´Ï¸ç, ¾î¶² °÷ÀÌ¶óµµ µÉ ¼ö ÀÖ´Ù.


<±×¸² 5> CERN httpdÀÇ Server root ±¸Á¶

<±×¸² 5> ¿¡ ÀϹÝÀûÀÎ CERN httpdÀÇ server root±¸Á¶¸¦ º¸¿´´Ù. icons directory´Â configuration file¿¡´Â ³ªÅ¸³ªÁö ¾ÊÁö¸¸ ²À ÀÖ¾î¾ß¸¸ ÇÏ´Â °ÍÀ¸·Î, directory¸¦ Ç¥½ÃÇÒ¶§ »ç¿ëµÇ´Â iconµéÀÇ ÁýÇÕ¼ÒÀÌ´Ù. conf´Â ¿¹Á¦ ȤÀº ½ÇÁ¦ configuration fileÀÇ ÀúÀå¼ÒÀÌ´Ù. (±×·¯³ª default configuration fileÀº /etc/httpd.confÀÌ´Ù.)

httpd¿Í °ü·ÃµÈ ½ÇÇàÈ­ÀϵéÀº ´ÙÀ½ÀÇ 3Á¾·ù·Î ³ª´­ ¼ö ÀÖ´Ù.

¿©±â¼­, CGI programÀ̶õ httpd¿¡ ÀÇÇØ ºÒ·ÁÁö´Â CGI ±Ô¾àÀ» ¸¸Á·ÇÏ´Â ÇÁ·Î±×·¥À» ¸»Çϰí, CGI utility¶õ CGI programÀ» Â¥´Âµ¥ µµ¿òÀÌ µÇ´Â ÇÁ·Î±×·¥À» ¸»ÇÑ´Ù. CGI utility´Â httpd¿¡ ÀÇÇØ Á÷Á¢ ºÒ·ÁÁ®¼­´Â °ï¶õÇϹǷΠhttpd°¡ Á÷Á¢ ºÎ¸¦ ¼ö ¾ø´Â°÷¿¡ ³õ´Â°ÍÀÌ ÁÁ´Ù.

µû¶ó¼­, CGI utility³ª WWW server º»Ã¼µîÀº bin¿¡, CGI programÀº cgi-bin¿¡ µû·Îµû·Î º¸°üÇϰí, cgi-binÀº server script directory·Î ¼³Á¤ÇÏ´Â °ÍÀÌ º¸ÅëÀÌ´Ù.

4.4. Configuration

¹èÄ¡±îÁö ³¡³µÀ¸¸é ÀÌÁ¦ ¹èÄ¡¿¡ ¸Âµµ·Ï configurationÀ» Á¶Á¤ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù.

4.4.1. 񃧯 configuraton

¸ÕÀú, configurationÈ­ÀÏÀ» ¾îµð´Ù ³õÀ» °ÍÀÎÁö °áÁ¤ÇÑ´Ù. Default°ªÀº /etc/httpd.confÀÌÁö¸¸, httpd ½ÃÀÛÇÒ¶§ -r optionÀ¸·Î configuration fileÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. À§Ä¡¸¦ °áÁ¤ÇßÀ¸¸é, ¿¹Á¦ configuration fileµé Áß¿¡ Çϳª¸¦ °ñ¶ó °áÁ¤µÈ À§Ä¡¿¡ º¹»çÇØ ³õ´Â´Ù.

ÀÌÁ¦ configurationÈ­ÀÏÀÇ ³»¿ëÀ» °íÃ帵µ·Ï ÇÏÀÚ.

¸Ç ¸ÕÀú ¼³Á¤ÇØ¾ß ÇÒ °ÍÀº ServerRootÀÌ´Ù. À̰ÍÀº ¾Õ Àý¿¡¼­ À̾߱âÇÑ server rootÀÇ À§Ä¡¸¦ Àý´ë path·Î Ç¥½ÃÇÏ´Â °ÍÀÌ´Ù.

PortNumber´Â httpd°¡ ¾î¶² TCP port number¸¦ »ç¿ëÇÒ °ÍÀÎÁö Á¤ÇØ ÁÖ´Â ºÎºÐÀÌ´Ù. ÈçÈ÷ URLÀ» ÀûÀ»¶§ hostºÎºÐ µÚÂÊ¿¡ ÄÝ·Ð ´ÙÀ½¿¡ Àû´Â ¼ýÀÚ (¿¹: http://camis.kaist.ac.kr:8080/¿¡¼­ 8080) °¡ ÇØ´ç httpdÀÇ port number¸¦ ÀǹÌÇÑ´Ù. ¸¸¾à, °ø½Ä WWW service¸¦ ÇÑ´Ù°í Çϸé HTTPÀÇ °ø½Ä port numberÀÎ 80¹øÀ» »ç¿ëÇÑ´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì 1024ÀÌÈÄÀÇ ¾î¶² ¹øÈ£¸¦ »ç¿ëÇØµµ »ó°ü ¾ø´Ù. ´Ü, 80¹øÀ» »ç¿ëÇÒ °æ¿ì httpd´Â root±ÇÇÑÀ¸·Î ½ÇÇàµÇ¾î¾ß¸¸ ÇÑ´Ù.

ServerTypeÀº ÀÌ httpd°¡ StandAloneÀ¸·Î ¼öÇàµÉ °ÍÀÎÁö, Inetd¸¦ ÅëÇÏ¿© ¼öÇàµÉ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. (Âü°í·Î, httpd Á¦ÀÛÀÚµéÀº stand aloneÀ¸·Î ¼öÇàÇÏ´Â °ÍÀ» ±ÇÀåÇϰí ÀÖ´Ù.) StandAloneÀ̶õ httpd ÀÚü·Î¼­ ÇØ´ç portÀÇ ¸ðµç connection controlÀ» ÇÏ´Â °ÍÀ» ¸»Çϰí, inetd¸¦ ÅëÇÏ¿© ¼öÇàµÈ´Ù´Â °ÍÀº UnixÀÇ internet service daemonÀÎ inetdÀÇ Á¦¾î¿¡ µû¶ó httpd°¡ ¼öÇàµÇ´Â°ÍÀ» ¸»ÇÑ´Ù.

½ÇÁ¦ ÀÌ¿ë»ó¿¡¼­ stand alone°ú inetdÀÇ Â÷ÀÌ´Â ´ÙÀ½°ú °°´Ù. ¸ÕÀú, stand aloneÀ¸·Î ¶ß°Ô µÇ¸é httpd°¡ ÃÖ¼ÒÇÑ Çϳª´Â ²À ¶° ÀÖ¾î¾ß¸¸ ÇÑ´Ù. ±×¿¡ ºñÇØ¼­, inetd¸¦ ÅëÇÏ¿© ¶ß°Ô µÈ´Ù¸é http ¿¬°á¿ä±¸°¡ ¿À±â Àü±îÁö´Â httpd°¡ ½ÇÇàµÇÁö ¾Ê´Â´Ù. ¶ÇÇÑ, httpd°¡ configuration fileÀ» Àд ½ÃÁ¡Àº ¼öÇàÀÌ Ã³À½ ½ÃÀ۵ɶ§¿Í hangup signal (kill -1·Î »ý¼º)À» ¹Þ¾ÒÀ» ¶§ »ÓÀ̹ǷÎ, stand aloneÀ¸·Î ¶ç¿î °æ¿ì configuration fileÀ» º¯°æÇÑ ÈÄ httpd¿¡ hangup signalÀ» ÁÖ¾î¾ß¸¸ configuration fileÀÇ º¯°æ ³»¿ëÀÌ ¹Ý¿µµÈ´Ù. ±×¿¡ ºñÇÏ¿©, inetd¸¦ ÅëÇÏ¿© ¶ç¿ì°Ô µÇ¸é ¿¬°á ¿ä±¸°¡ µé¾î¿Ã¶§¸¶´Ù configuration fileÀ» ´Ù½Ã ÀÐÀ¸¹Ç·Î configuration fileÀÇ º¯°æÀÌ Áï°¢ÀûÀ¸·Î ¹Ý¿µµÈ´Ù. ´ë½Å, httpdÀÇ ±âµ¿¿¡ ÇÊ¿äÇÑ ½Ã°£, configuration fileÀ» Àд ½Ã°£µîÀÌ ÀÖÀ¸¹Ç·Î inetd¸¦ ÅëÇÏ´Â ÂÊÀÌ stand aloneÂÊ º¸´Ù ¹ÝÀÀ½Ã°£ÀÌ ¸Å¿ì ´À¸° ÆíÀÌ´Ù.

AccessLog, ErrorLog, ProxyLogµîÀº ÇØ´ç logµéÀ» ÀúÀåÇØ ³õ´Â Àå¼Ò¸¦ ÁöÁ¤ÇÑ´Ù. Server rootÀÇ »ó´ë path·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

4.4.2. URL-directory mapping

½ÇÁ¦ Unix filesystemÀÇ directory¿Í URLÀÇ path´Â °°À» Çʿ䰡 ¾ø´Ù. URLÀÇ path¸¦ UnixÀÇ file system¿¡ ¸ÂÃçÁÖ´Â °ÍÀ¸·Î´Â Pass, Fail, Map, ExecµîÀÇ directiveµéÀÌ ÀÖ´Ù. À̰͵éÀº ´ÙÀ½°ú °°Àº Çü½ÄÀ» µû¸¥´Ù.

Pass template [result]
Fail template
Map template result
Exec template script
¿©±â¼­ template¶õ URLÀ» ¸»Çϰí result³ª script´Â filesystem»ó¿¡¼­ÀÇ È­ÀÏÀ» ¸»ÇÑ´Ù.

MapÀ̶õ ¾î¶² fileÀ» ¾î¶² URL·Î Á¢±ÙÇÒ ¼ö ÀÖ´Ù´Â ÀǹÌÀÌ´Ù. Pass¶õ ¾î¶² URLÀ» httpd°¡ ¿ÜºÎ·Î °ø°³Çصµ ÁÁ´Ù´Â ÀǹÌÀÌ´Ù. FailÀ̶õ ¾î¶² URLÀº httpd°¡ ¿ÜºÎ·Î °ø°³Çؼ­´Â ¾ÈµÈ´Ù´Â ÀǹÌÀÌ´Ù. Exec¶õ ¾î¶² URL·Î ÁöÁ¤µÈ È­ÀϵéÀº ¹®¼­·Î º¸Áö ¸»°í ½ÇÇà °¡´ÉÇÑ script·Î º¸¶ó´Â Àǹ̷Î, ÀÌ È­ÀϵéÀº ´Ù¸¥ È­Àϵé°ú ´Þ¸® ÀÎÃâµÇÁö ¾Ê°í ½ÇÇàµÈ´Ù. ÁÖÀ§ÇÒ Á¡Àº ÀÌ directiveµéÀº ¾²¿©Áø ¼ø¼­´ë·Î °Ë»öµÇ¹Ç·Î, ¼ø¼­°¡ ¾î¶»°Ô µÇ¾î ÀÖ´À³Ä¿¡ µû¶ó °á°ú°¡ ´Þ¶óÁú ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.


<±×¸² 6> ½ÇÁ¦ UNIX directory¿Í configuration file

<±×¸² 6>¿¡ ¿¹Á¦ configuration fileÀÇ ÀÏºÎ¿Í unix directory ±¸Á¶¸¦ ³ªÅ¸³»¾ú´Ù. ÀÌ °æ¿ì /man/ttt.txt¶ó´Â URLÀº /w3-data/man/ttt.txt°¡ µÇÁö ¾Ê°í /www/man/ttt.txt°¡ µÇ´Â Á¡¿¡ ÁÖÀÇÇ϶ó. ¶ÇÇÑ /w3-data/docs/private ÀÌÇÏ È­ÀϵéÀº ¿ÜºÎ¿¡¼­ Á¢±ÙÇÒ ¼ö ¾ø´Ù´Â Á¡µµ ±â¾ïÇØ µÑ ¸¸ ÇÏ´Ù. ¸¸¾à Fail directive°¡ ¸Ç ¸¶Áö¸· ÁÙ¿¡ ÀÖ´Ù¸é private directory´Â ¿ÜºÎ·Î °ø°³µÈ´Ù´Â Á¡µµ ÁÖÀÇÇ϶ó.

4.4.3. Access control

º¸¾È»óÀÇ ÀÌÀ¯·Î³ª ´Ù¸¥ ÀÌÀ¯·Î, WWW serviceÀÇ ¾î¶² ºÎºÐÀº ¾Æ¹«¿¡°Ô³ª º¸¿©ÁÖ°í ½ÍÁö ¾ÊÀº °æ¿ì°¡ ÀÖ´Ù. ÀÌ·± °æ¿ì »ç¿ëÇÒ ¼ö Àִ°ÍÀÌ httpdÀÇ »ç¿ëÁ¦ÇÑ(access control)±â´ÉÀÌ´Ù.

ÇöÀç CERN httpd´Â clientÀÇ ÁÖ¼Ò¿¡ ÀÇÇÑ Á¦Çѹæ¹ý°ú, username°ú passwd¸¦ ¹Þ¾Æ¼­ Çã¶ôµÈ »ç¿ëÀÚ¸¸ ¹Þ¾ÆµéÀÌ´Â µÎ°¡Áö »ç¿ë Á¦ÇÑ ¹æ¹ýÀÌ ÀÖ´Ù. µÎ°¡Áö °æ¿ì ´Ù Protection, ProtectµîÀÇ directive¸¦ »ç¿ëÇÑ´Ù.

Protection  PROT-NAME  {
	UserId		server user id
	GroupId		server group id
	AuthType	Basic
	ServerId	server string whatever you want
	PasswordFile	path to password file
	GroupFile	path to group file
	GetMask		allowed user, group or @host
}
Protect  URL	PROT-NAME

ÀÚ¼¼ÇÑ °ÍÀº How to setup protected CERN server ¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

4.4.4. »ç¿ëÀÚ °ü¸®

º°µµ·Î »ç¿ëÀÚ¸¦ °ü¸®ÇÏ´Â °æ¿ì¿¡´Â password file°ú group fileÀ» °ü¸®ÇÏ¿©¾ß ÇÑ´Ù. password file°ú group fileÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

Password format:
	username:password(encrypted):realname
Group format:
	groupname:item,item,item,...
¿©±â¼­ itemÀº usernameÀÌ µÉ¼öµµ ÀÖ°í groupÀ̸§µµ µÉ ¼ö ÀÖÀ¸¸ç, hostname ȤÀº IP addressµµ µÉ ¼ö ÀÖ´Ù. ´Ü, hostnameÀ̳ª IP addressÀÇ °æ¿ì¿¡´Â ¾Õ¿¡ @°¡ ºÙ´Â´Ù. ¸¸¾à, ¾î¶² È£½ºÆ®ÀÇ ´©±¸·Î Á¦ÇÑÇÏ°í ½Í´Ù¸é username@hostÇüÅ·ΠÀûÀ¸¸é µÈ´Ù.

Password fileÀ» °ü¸®Çϱâ À§Çؼ­ CERN server¿¡´Â htadmÀ̶ó´Â ÇÁ·Î±×·¥À» Á¦°øÇÑ´Ù.

ÀÚ¼¼ÇÑ °ÍÀº htadm manual page ¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

4.5. ¼­¹ö ¶ç¿ì±â¿Í ³¡³»±â

4.5.1. ¼­¹ö ¶ç¿ì±â

httpd¸¦ ¶ç¿ì´Â ¹æ¹ý¿¡´Â µÎ°¡Áö ¹æ¹ýÀÌ Á¸ÀçÇÑ´Ù. Stand aloneÀ¸·Î ¶ç¿ì´Â ¹æ¹ý°ú inetd°¡ °ü¸®ÇÏ´Â ÇϳªÀÇ daemonÀ¸·Î½á ¶ç¿ì´Â ¹æ¹ýÀÌ´Ù. (ServerType ÂüÁ¶)

Stand aloneÀ¸·Î ¶ç¿ì°íÀÚ ÇÑ´Ù¸é, ´ÜÁö httpd -r conf_file_path¶ó°í ½ÇÇàÇØ ÁÖ¸é µÈ´Ù. ¸¸¾à, Ç×»ó httpd°¡ ¶° Àֱ⸦ ¹Ù¶õ´Ù¸é, BSDÀÇ °æ¿ì¿¡´Â /etc/rc.local¿¡ À§ÀÇ ÇÑ ÁÙÀ» Ãß°¡ÇØ ÁÖ¸é µÇ¸ç, System VÀÎ °æ¿ì¿¡´Â /etc/rc3.d directory¿¡ S90locald¶ó´Â À̸§À¸·Î È­ÀÏÀ» Çϳª ¸¸µé¾î¼­ À§ÀÇ ¸í·ÉÀ» ³Ö¾îÁÖ¸é µÈ´Ù.

Inetd·Î ¶ç¿ì´Â °æ¿ì¿¡´Â ¸ÕÀú, /etc/services¿¡ httpd 80/tcp ¶ó´Â ÇÑÁÙÀ» Ãß°¡ÇÑ´Ù. ´ÙÀ½ /etc/inetd.confÈ­ÀÏ¿¡ ´ÙÀ½ ÇÑÁÙÀ» Ãß°¡ÇÑ´Ù.

http stream tcp nowait nobody httpd_path httpd_command
(ÁÖÀÇ: /etc/servicesÀÇ °æ¿ì, ¸¸¾à NIS¸¦ µ¹¸®°í ÀÖ´Ù¸é NIS sourceÈ­ÀÏÀ» °íÃľ߸¸ Çϸç, ´Ù °íÄ£ ÈÄ¿¡´Â °íÄ£ Á¤º¸°¡ ypmakeµîÀ» ÅëÇÏ¿© ÇØ´ç È£½ºÆ®¿¡ Àü´Þ µÇ¾î¾ß ÇÑ´Ù.)

±×¸®°í ³ª¼­ inetd ¿¡°Ô kill -1 ·Î hangup signalÀ» ÁÖ¸é, ±×¶§ºÎÅÍ HTTP¿¬°á¿ä±¸°¡ ¿Ã ¶§¸¶´Ù httpd°¡ ÀÛµ¿ÇÑ´Ù. ÀÌ °æ¿ì¿¡´Â Ç×»ó ¶° ÀÖµµ·Ï º°µµ·Î ÇØ¾ß ÇÒ ÀÏÀÌ ¾ø´Ù.

4.5.2. ¼­¹ö ³¡³»±â

Stand aloneÀ¸·Î ¶° ÀÖ´Â °æ¿ì¿¡´Â terminate signal (kill -15)·Î httpdÀÇ µ¿ÀÛÀ» ÁߴܽÃų ¼ö ÀÖ´Ù. ¸¸¾à, configuration fileÀ» º¯°æÇÏ°í º¯°æµÈ ³»¿ëÀ» Àû¿ë½Ã۰íÀÚ ÇÑ´Ù¸é hangup signal (kill -1)À» ÁØ´Ù. ÀÌ·¸°Ô Çϸé httpd¸¦ ÁߴܽÃŰÁö ¾Ê°í configuration fileÀ» ´Ù½Ã Àеµ·Ï ÇÒ ¼ö ÀÖ´Ù.

Inetd·Î ¶° ÀÖ´Â °æ¿ì¿¡´Â, HTTP¿¬°á¿ä±¸°¡ µé¾î¿À¸é httpd¸¦ ¶ç¿ì°í ó¸®ÇØ¾ß µÉ ³»¿ëÀÌ ³¡³ª¸é httpd°¡ ³¡³ª´Â ÇüÅÂÀ̹ǷÎ, /etc/inetd.conf ¸¦ ¿ø·¡´ë·Î ¹Ù²ã³õÁö ¾Ê´Â ÇÑ httpd°¡ ¶ß´Â °ÍÀ» ¸·À» ¼ö ¾ø´Ù.

5. ¼­¹öÀÇ ¿î¿µ

º» Àå¿¡¼­´Â ½ÇÁ¦ ¼­¹ö ¿î¿µ¿¡ À־ µµ¿òÀÌ µÉ¸¸ÇÑ ¸î°¡Áö »ç½ÇµéÀ» ³ª¿­ÇÑ´Ù.

5.1. »ç¿ëÀÚ ÂÊ Áö¿ø

¿©·¯ »ç¶÷ÀÌ »ç¿ëÇϴ ȣ½ºÆ®¿¡ httpd¸¦ ¼³Ä¡ÇÏ°Ô µÇ¸é, »ç¿ëÀÚµéÀÌ ÀÚ½ÅÀÇ È¨ÆäÀÌÁö¸¦ °®°í ½Í¾îÇÏ´Â °ÍÀº ´ç¿¬ÇÑ °ÍÀÌ´Ù. ±×·¸´Ù¸é, °ü¸®ÀÚÀÇ ÀÔÀå¿¡¼­ ¾î¶»°Ô »ç¿ëÀÚÀÇ ¿ä±¸µµ ÃæÁ·½Ãų ¼ö ÀÖÀ» °ÍÀΰ¡?

5.1.1. directory ¼³Á¤

ȨÆäÀÌÁö¸¦ °®°í ½Í¾îÇÏ´Â »ç¿ëÀÚ°¡ ¸î ¾ÈµÈ´Ù¸é, ±× »ç¶÷µéÀÇ directory¸¦ httpd configuration¿¡ Æ÷ÇÔ½ÃÅ´À¸·Î½á »ç¿ëÀÚµéÀÌ ÀÚ½ÅÀÇ ÆäÀÌÁö¸¦ ¾µ¼ö ÀÖ°Ô²û ÇÏ´Â °Íµµ ÇѰ¡Áö ¹æ¹ýÀÌ´Ù. ±×·¯³ª, ¸¸¾à »ç¿ëÀÚ°¡ 100¸íÀÌ ³Ñ¾î°£´Ù¸é ¾î¶»°Ô ÇÒ °ÍÀΰ¡?

CERN httpdÀÇ °æ¿ì UserDir public_html¶ó´Â ÇÑ ÁÙÀ» configuration file¿¡ Ãß°¡ÇØ ÁÖ¸é ½±°Ô ÇØ°áµÈ´Ù. °¢ »ç¿ëÀÚÀÇ home directory¹Ø¿¡ public_htmlÀ̶õ directory°¡ /~login_nameÀ̶õ ÇüÅ·Î, ¿ÜºÎ·ÎºÎÅÍ httpd¸¦ ÅëÇØ¼­ Á¢±ÙÀÌ °¡´ÉÇØ Áö±â ¶§¹®ÀÌ´Ù.

5.1.2. »ç¿ëÀÚ CGI

»ç¿ëÀÚµéÀÌ CGI±îÁö »ç¿ëÇÏ°Ô ÇØ ´Þ¶ó°í ¿ä±¸ÇÑ´Ù¸é ¾î¶»°Ô ÇØ¾ßÇϴ°¡? /cgi-bin¿¡ ÇØ´çÇÏ´Â directory¸¦ ¾Æ¹«³ª ¾µ ¼ö ÀÖµµ·Ï ¿­¾îÁÖ¾î¾ß Çϴ°¡? (Àý´ë·Î ±×·¡¼­´Â ¾ÈµÈ´Ù!)

ÀÌ·² °æ¿ì cgiwrap À» ¼³Ä¡ÇÏ¿© »ç¿ëÇϵµ·Ï ÇÏ´Â °ÍÀÌ ÁÁ´Ù. cgiwrapÀº CGI programÀÌ »ç¿ëÀÚÀÇ ±ÇÇÑ¿¡¼­¸¸ µ¹¾Æ°¡µµ·Ï Á¦ÇÑÇÒ »Ó ¾Æ´Ï¶ó, »ç¿ëÀÚÀÇ CGI°¡ ¾ðÁ¦ ¾î¶»°Ô ½ÇÇàµÇ¾ú´Â°¡¸¦ ±â·ÏÇϱ⵵ ÇÑ´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀº cgiwrap ÆäÀÌÁö¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

5.2. ¼­¹ö Åë°è

httpd°¡ »ý¼ºÇÏ´Â È­ÀÏÁß¿¡ access log¶ó´Â È­ÀÏÀÌ ÀÖ´Ù. À̰ÍÀº ÇØ´ç httpd¿¡ Á¢¼ÓÇß´ø host, ½Ã°¢, °¡Á®°£ ¹®¼­, Á¢¼Ó °á°úµîÀÌ ±â·ÏµÈ È­ÀÏ·Î, ÀαâÀÖ´Â WWW serverÀϼö·Ï ´«µ¢ÀÌ Ã³·³ ºÒ¾î³­´Ù.

¾óÇͺ¸±â¿¡´Â ¾µ¸ð¾ø´Â ÀÌ È­ÀÏÀ» À¯¿ëÇÏ°Ô È°¿ëÇÒ ¼ö ÀÖ´Ù. getstats ¶ó´Â ÇÁ·Î±×·¥À» »ç¿ëÇϸé access log¸¦ Àо ¿©·¯°¡Áö·Î ºÐ¼®À» ÇØ ÁØ´Ù. ¾î´À È£½ºÆ® ¶Ç´Â µµ¸ÞÀο¡¼­ Á¢¼ÓÀ» ¸¹ÀÌ Çß´ÂÁö, ÇÏ·ç Áß, ÇÑÁÖÀÏ Áß ¶Ç´Â ÇÑ´ÞÁß ¾ðÁ¦ Á¢¼Ó¿ä±¸¸¦ ¸¹ÀÌ ÇÏ´ÂÁö, °¡Àå ÀαâÀÖ´Â ¹®¼­´Â ¹«¾ùÀÎÁö, ¾ðÁ¦ httpd°¡ ´ë´äÀ» Àß ¸øÇØÁá´ÂÁöµîÀ» optionÀ» ¹Ù²ã°¡¸é¼­ ¶Ç´Â ÀüºÎ ºÐ¼® ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ºÐ¼®À» ÅëÇÏ¿© httpdÀÇ configurationÀ» ¹Ù²Ù¾î º¼ °ÍÀ» °í·ÁÇÒ ¼ö ÀÖ´Ù.

¸¸¾à Ãâ·ÂÀ» ±×·¡ÇÁ ÇüÅ·Πº¸°í ½Í´Ù¸é getgraph.pl À» ¼³Ä¡ÇÏ¿© »ç¿ëÇÏ¸é µÈ´Ù. ±×·¯³ª, À̰ÍÀº perl, gnuplot, pbmplus, giftransµîÀÇ ´Ù¸¥ °ø°³ ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ¿©¾ß¸¸ ÇÑ´Ù. ´ÜÁö »ç¿ë·®¸¸À» ±×·¡ÇÁ·Î º¸°íÀÚ ÇÑ´Ù¸é, wusage¸¦ »ç¿ëÇÏ´Â °Íµµ ÁÁ´Ù.

´Ù¸¥ log ºÐ¼® µµ±¸¿¡ °ü½ÉÀÌ ÀÖ´Ù¸é HTTPD Log Analyzers ÆäÀÌÁö¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

5.3. º¸¾È¿¡ ´ëÇÑ °í·Á

5.3.1. CGI¿Í º¸¾È

CGI´Â httpd°¡ ½Ç·ÁÀÖ´Â host¿¡¼­ ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ ¿äÁÖÀÇ ´ë»óÀÌ´Ù. ±× ÇÁ·Î±×·¥À̶ó´Â °ÍÀÌ ´Ü¼øÇÑ Àå³­ ÇÁ·Î±×·¥ÀÎÁö, hostÀÇ passwd³ª ±â¹Ð ¹®¼­¸¦ °¡Á®°¡´Â ÇÁ·Î±×·¥ÀÎÁö, ¾Æ´Ï¸é È£½ºÆ®¸¦ ¸ù¶¥ Áö¿ö¹ö¸®´Â ÇÁ·Î±×·¥ÀÎÁö ¾Ë ±æÀÌ ¾ø±â ¶§¹®ÀÌ´Ù.

ÀÌ·± Àǹ̿¡¼­ CGI ÇÁ·Î±×·¥ÀÌ ÀúÀåµÇ¾î ÀÖ´Â directory´Â ´Ù¸¥ »ç¶÷µéÀÌ ÇÁ·Î±×·¥À» ÇԺηΠÃß°¡Çϰųª ¹Ù²ãÄ¥ ¼ö ¾øµµ·Ï ½Å°æÀ» ½á¾ß ÇÑ´Ù. »ç¿ëÀÚµéÀÌ CGI¸¦ »ç¿ëÇϰԲû ÇÑ´Ù¸é, ±× ÇÁ·Î±×·¥ÀÌ »ç¿ëÀÚÀÇ ±ÇÇÑÀ¸·Î¸¸ ÀÛµ¿Çϵµ·Ï ½Å°æ½á¾ß ÇÑ´Ù.

´õ¿ì±â UserDir directive·Î »ç¿ëÀÚ µð·ºÅ丮¸¦ ¼³Á¤ÇßÀ» °æ¿ì¿¡´Â, ÀÌ»óÇÑ »ç¿ëÀÛ Ãß°¡µÇÁö ¾Ê´Â°¡ À¯½ÉÈ÷ »ìÆì º¼ Çʿ䰡 ÀÖ´Ù.

NCSA httpd³ª NetSite¿¡¼­ Á¦°øÇÏ´Â Server side include±â´É¿¡´Â CGI ±â´ÉÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ÀÌ°Í ¿ª½Ã ½Å°æ½á¾ß ÇÒ ´ë»óÀÌ´Ù. Server side include¿¡ CGI±â´ÉÀÌ ÇÊ¿äÇÏÁö ¾Ê´Ù¸é, access.confÈ­ÀÏ¿¡¼­ IncludeNOEXEC¸¦ ÁöÁ¤ÇÔÀ¸·Î½á include½Ã CGI½ÇÇàÀ» Á¦ÇÑÇÏ´Â °ÍÀÌ ÁÁ´Ù.

5.3.2. chrootÀÇ »ç¿ë

¾ó¸¶Àü¿¡ NCSA httpd 1.3À» ÅëÇØ¼­ httpd°¡ ¼³Ä¡µÇ¾î Àִ ȣ½ºÆ®ÀÇ ±ÇÇÑÀ» µû ³¾¼ö ÀÖ´Ù´Â »ç½ÇÀÌ ¾Ë·ÁÁ®¼­ È­Á¦°¡ µÈÀûÀÌ ÀÖ´Ù. Áö±ÝÀº ±× ¿À·ù°¡ Á¦°ÅµÇ¾úÁö¸¸, »ç½Ç, ´Ù¸¥ ¾î¶² ¿À·ù°¡ ¼û¾îÀÖÀ»Áö ¾Ë ¼ö ¾ø´Ù.

ƯÈ÷ port number 80¹øÀÇ Á¤½Ä server¸¦ ¿î¿µÇÏ·Á¸é root°¡ httpd¸¦ µ¹¸± ¼ö ¹Û¿¡ ¾ø´Ù. ¸¸¾à ÀÌ È£½ºÆ®ÀÇ httpd¸¦ ÅëÇØ¼­ ±ÇÇÑÀ» µû ³¾ ¼ö ÀÖ´Ù¸é, root±ÇÇÑÀ» »¯±ä´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

ÀÌ¿Í ºñ½ÁÇÑ ¹®Á¦°¡ ¿©·¯ °æ¿ì¿¡ ¹ß»ýÇ߱⠶§¹®¿¡ Unix¿¡¼­´Â chroot¶ó´Â command¸¦ Á¦°øÇϰí ÀÖ´Ù. chroot¶õ, change root directoryÀÇ ¾àÀڷμ­, ±ÛÀÚ ±×´ë·Î ´Ù¸¥ directory¸¦ root directory¶ó°í ÀνÄÇÏ°Ô ¸¸µå´Â commandÀÌ´Ù.

¿¹¸¦ µé¾î chroot /www-stuff httpd¿Í °°Àº ÇüÅ·Πhttpd¸¦ ½ÇÇàÇÏ¿´´Ù¸é, httpd¿Í httpd°¡ ¸¸µé¾î³»´Â ¸ðµç process´Â /www-stuff directory¸¦ root directory·Î ÀνÄÇÑ´Ù. ´Ù½Ã ¸»Çϸé, httpd¿Í ±×ÀÇ child processµéÀº /www-stuff¹ØÀÇ È­ÀÏ À̿ܿ¡´Â Àý´ë·Î °Çµå¸± ¼ö°¡ ¾ø´Â °ÍÀÌ´Ù.


<±×¸² 7> chroot¸¦ ÅëÇÑ httpdÀÇ º¸¾È

<±×¸² 7>À» º¸ÀÚ. chroot /www-stuff httpd¶ó´Â ¸í·ÉÀ¸·Î httpd¸¦ ¶ç¿î °æ¿ì httpd ¹× ±×ÀÇ child processµéÀº Ç¥½ÃÇÑ ¿µ¿ªÀ» Àüü È­ÀϽýºÅÛÀ̶ó°í ÀνÄÇÑ´Ù. µû¶ó¼­, httpd¸¦ ÅëÇØ¼­ Å©·¡Ä¿°¡ root±ÇÇÑÀ» ¾ò¾ú´Ù ÇÏ´õ¶óµµ, Å©·¡Ä¿´Â /usr, /etc, /home directory´Â ÀüÇô °Çµå¸± ¼ö°¡ ¾ø´Ù.

´ë½Å ¸ðµç configurationÀº »õ·Î¿î root directory (¿©±â¼­´Â /www-stuff)¸¦ root¶ó°í »ý°¢ÇÏ°í ´Ù½Ã ¾²¿©Á®¾ß¸¸ ÇÑ´Ù. »ç¿ëÀÚ¸¦ À§ÇÑ ÂÊÀ» Áö¿øÇÏ·Á¸é »õ·Î¿î directory ¹Ø¿¡ etcµð·ºÅ丮¿Í °¡Â¥ passdÈ­ÀÏÀ» ¸¸µé°í, °¡Â¥ user directory¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. symbolic link ¿ª½Ã »õ·Î¿î root directory¸¦ root·Î »ý°¢ÇÏ°í ¸¸µé¾î Á®¾ß ÇÑ´Ù.

±×·¯³ª, chroot·Î httpd¸¦ ¶ç¿î´Ù¸é ÇѰ¡Áö´Â È®½ÇÇØ Áø´Ù. Ȥ½Ã httpd·Î Å©·¡Ä¿°¡ µé¾î¿Â´Ù ÇÏ´õ¶óµµ ±×°¡ Áö¿ï¼ö Àִ°ÍÀº httpd ¿Í HTML¹®¼­µé »ÓÀÌ´Ù.

6. °á·Ð

º» ¹®¼­¿¡¼­´Â WWW serverÀÎ httpd¿¡ ´ëÇØ¼­ ¼³¸íÇÏ¿´´Ù. ¸ÕÀú ftpd¿Í httpdÀÇ Â÷À̸¦ ¼³¸íÇϰí, httpdÀÇ Æ¯Â¡¿¡ ´ëÇØ¼­ µû·Î ¼³¸íÇÏ¿´´Ù. ´ëÇ¥ÀûÀÎ httpd 3°³¸¦ °ñ¶ó ±×µéÀÇ Æ¯Â¡µéÀ» µû·Î ºÐ·ùÇÏ°í Æ¯Â¡¿¡ ´ëÇÑ °³·«ÀûÀÎ ¼³¸íÀ» ÇÏ¿´´Ù. ¶ÇÇÑ, CERN httpd¸¦ Áß½ÉÀ¸·Î ½ÇÁ¦ ¼³Ä¡ °úÁ¤¿¡ ´ëÇÑ °³·«ÀûÀÎ »çÇ×À» ¼³¸íÇÏ¿´´Ù. ¸¶Áö¸·À¸·Î ¿î¿µ¿¡ ÇÊ¿äÇÑ ¸î°¡Áö »çÇ×À» Á¤¸®ÇÏ¿´´Ù.

ÀÌ ¹®¼­´Â ¾ÕÀ¸·ÎÀÇ º¯È­¿¡ µû¶ó °è¼Ó ¹ßÀüÇÒ ¿¹Á¤ÀÌ´Ù. http://camis.kaist.ac.kr/~jwjung/seminar/httpd-comp-inst/ ¿¡¼­ ÃÖ±ÙÀÇ ¹®¼­¸¦ ã¾Æ º¼ ¼ö ÀÖ´Ù. ÀÌ ¹®¼­¿¡ ´ëÇÑ comment´Â ¾ðÁ¦µçÁö ȯ¿µÇϸç jwjung@camis.kaist.ac.kr·Î º¸³»¸é µÈ´Ù.

Âü°í¹®Çå(References)

[Luotonen94a]
Ari Luotonen, Tim Berners-Lee, "CERN httpd User's Guide/Reference Manual," CERN, 1993-1994.
URL:
http://www.w3.org/hypertext/WWW/Daemon/User/Guide.html
URL: http://www.w3.org/pub/WWW/Daemon/User/Guide.html
[Luotonen94b]
Ari Luotonen, Kevin Altis, "World-Wide Web Proxies," CERN/Intel, May 1994.
URL: http://www.w3.org/hypertext/WWW/Proxies/
[McGrath95]
Robert E. McGrath, "Performance of Several HTTP Demons on an HP 735 Workstation," 25 April 1995
URL: http://www.ncsa.uiuc.edu/InformationServers/Performance/V1.4/report.html
[NCSAHTTPd95]
NCSA HTTPd Development Team, "NCSA HTTPd Home Page," Last Modified : 8-16-95
URL: http://hoohoo.ncsa.uiuc.edu/