![]() |
Protocols for the World-Wide Web Service |
World-Wide Web ¼ºñ½º ÀÚü¸¦ À§ÇØ ¾²ÀÌ´Â ÇÁ·ÎÅäÄÝÀº HTTP¶ó°í ÇÏ´Â °ÍÀÌ´Ù. ÃÖÃÊ¿¡ °³¹ßµÇ¾úÀ» ¶§´Â ´ÜÁö ½ÇÁ¦ µ¥ÀÌŸÀÇ Àü¼Û¸¸À» À§ÇØ ¾²¿´À¸³ª Áö±ÝÀº ´Ù¾çÇÑ ±â´ÉÀ» ÇÁ·ÎÅäÄÝ¿¡ ³Ö°íÀÚ Çϰí ÀÖ´Ù. ÀÌ·¯ÇÑ °úÁ¤À¸·Î °³¹ßµÇ°í ÀÖ´Â ´Ù¾çÇÑ ÇÁ·ÎÅäÄݵéÀ» ¿©±â¼ Á¤¸®ÇϰíÀÚ ÇÏ¸ç ¹Ìó Á¤¸®ÇÏÁö ¸øÇÑ ´Ù¸¥ ÇÁ·ÎÅäÄݵéÀº ´ÙÀ½ ±âȸ¿¡ Á¤¸®ÇϰíÀÚ ÇÑ´Ù. ÀÌ ±Û¿¡¼´Â ¾Æ·¡ÀÇ ³× °¡Áö ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ »ìÆìº¸µµ·Ï ÇÑ´Ù.
HTTP´Â World Wide Web¿¡¼ »ç¿ëÇϰí ÀÖ´Â µ¥ÀÌŸ Àü¼Û ÇÁ·ÎÅäÄÝÀ̸ç MIMEÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¸ðµç µ¥ÀÌŸ Çü½Ä¿¡ ´ëÇØ 8bit ÀÌÁø¸ðµå·Î Àü¼ÛÇÒ ¼ö ÀÖ´Ù. (8bit ÀÌÁø¸ðµå Àü¼ÛÀ̶ó ÇÔÀº 1bitµµ ºüÁü¾øÀÌ ¿ÏÀü¹«°áÇÏ°Ô Àü¼ÛÇÑ´Ù´Â °ÍÀ̸ç 7bit ¾Æ½ºÅ°¸ðµå Àü¼ÛÀ̶ó ÇÔÀº 8bit ±âº» ´ÜÀ§¿¡¼ MSB 1bitÀÇ ¿ÏÀü¹«°á¼ºÀ» º¸ÀåÇÏÁö ¸ø ÇÑ´Ù´Â °ÍÀ̹ǷΠµ¥ÀÌŸ Àü¼Û¿¡ ¿À·ù°¡ »ý±æ °¡´É¼ºÀÌ ÀÖ´Ù. µû¶ó¼ ASCII ÅØ½ºÆ® ¹®¼¸¦ Àü¼ÛÇÒ ¶§´Â 7bit ¾Æ½ºÅ°¸ðµå·Î Àü¼ÛÀ» ÇØµµ µÇÁö¸¸ ½ÇÇàÆÄÀϰú °°Àº binary data¸¦ Àü¼ÛÇϰíÀÚ ÇÒ ¶§´Â ¹Ýµå½Ã 8bit ÀÌÁø¸ðµå·Î Àü¼ÛÇÏ¿©¾ß¸¸ ÇÑ´Ù.)
À̰ÍÀº FTPÀÇ °æ¿ì¿¡¼¿Í °°ÀÌ ÀÌÁø¸ðµå·Î µ¥ÀÌŸ ¼Û¼ö½ÅÀÌ °¡´ÉÇÔÀ» ¶æÇϸç, ´Ù¸¸ WWW¿ëÀÇ Ãß°¡ÀûÀÎ Á¤º¸°¡ HTTP ÇÁ·ÎÅäÄÝ¿¡¼ Ȱ¿ëµÇ°í ÀÖÀ» »ÓÀÌ´Ù. µû¶ó¼ HTTP ÇÁ·ÎÅäÄÝÀº TCP/IP ÇÁ·ÎÅäÄÝ Ã¼°è °¡¿îµ¥ TELNETÀ̳ª FTP¿Í °°Àº ÀÀ¿ë ÇÁ·ÎÅäÄÝÀÇ ÇÑ °¡ÁöÀÌ´Ù. Áï, ¾Æ·¡ÀÇ ±×¸²¿¡¼ º¸ÀÌ´Â °Íó·³ HTTP´Â TELNETó·³ TCP ¼ö¼Û°èÃþ ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇØ¼ µ¥ÀÌŸ ¼Û¼ö½ÅÀ» ÇÏ´Â ÀÀ¿ë °èÃþ ÇÁ·ÎÅäÄÝÀÇ ÀÏÁ¾À̶ó´Â °ÍÀÌ´Ù.
TCP/IP ÇÁ·ÎÅäÄÝ¿¡¼´Â TCP Àü¼Û ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ´Â ÀÀ¿ë ÇÁ·ÎÅäÄÝµé »çÀÌÀÇ ±¸º°À» port ¹øÈ£¸¦ ÅëÇØ ÇØ°áÇϰí ÀÖ´Ù. ±×·¯¹Ç·Î HTTP ÀÀ¿ë ÇÁ·ÎÅäÄÝ¿¡ ÇÒ´çµÇ¾î »ç¿ëÇÏ´Â TCP Æ÷Æ®°¡ ÀÖÀ¸¸ç 80¹øÀ¸·Î ÁöÁ¤µÇ¾î ÀÖ´Ù. Á¤ÀǵǾî ÀÖÁö ¾ÊÀº ´Ù¸¥ ÀÓÀÇÀÇ Æ÷Æ®¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖÀ¸³ª ±âº»ÀûÀ¸·Î Á¤ÀǵǾî ÀÖ´Â ¹øÈ£´Â 80¹øÀÌ´Ù.
±×·¸´Ù°í ÇØ¼ HTTP ÇÁ·ÎÅäÄÝÀº TCP/IP¿¡¼¸¸ µ¿ÀÛÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. OSI ÂüÁ¶¸ðµ¨À» ÀÌ¿ëÇÑ ÇÁ·ÎÅäÄÝ Ã¼°è¿¡¼µµ ¼ö¼Û°èÃþÀÇ Àü¼Û ÇÁ·ÎÅäÄÝ »óÀ§¿¡¼ HTTP ÇÁ·ÎÅäÄÝÀº ÀÀ¿ë ÇÁ·ÎÅäÄݷμ Ȱ¿ëµÉ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ´Ù¸¸ ´Ù¸¥ ÇÁ·ÎÅäÄÝ Ã¼°è¿¡¼ »ç¿ëÇϰíÀÚ ÇÒ ¶§´Â ±×¿¡ ¸Â°Ô²û ¾à°£ÀÇ ÀûÀýÇÑ ¼öÁ¤À» ÇØ¾ß¸¸ °¡´ÉÇÒ °ÍÀÌ´Ù.
¹öÀü 1.0 HTTP ÇÁ·ÎÅäÄÝ(HTTP/1.0)Àº IETF (Internet Engineering Task Forces)¿¡ ÀÇÇØ RFC 1945·Î Á¤½Ä µî·ÏµÇ¾úÀ¸¸ç, ¹öÀü 1.1Àº(HTTP/1.1)Àº Proposed Standard·Î µî·ÏµÇ¾î RFC editor¿¡ ÀÇÇØ ÀçÀÛ¼ºµÈ ÈÄ RFC·Î¼ »õ·ÎÀÌ µî·ÏµÉ ¿¹Á¤ÀÌ´Ù. ÇöÀçÀÇ WWW¿¡¼ ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀº 1.0 ¹öÀüÀ̸ç 1.1 ¹öÀüÀÇ °ÍÀÌ ±¸ÇöµÇ°í ÀÖ´Â ÁßÀ̰í '96³â 10¿ù ÇöÀç W3C¿¡¼ ¹ßÇ¥ÇÑ Amaya¿Í Jigsaw°¡ 1.1 ¹öÀüÀ» ±¸ÇöÇÑ °ÍÀÌ´Ù.
½ÇÁ¦ÀûÀÎ Á¤º¸½Ã½ºÅÛ¿¡¼´Â °Ë»ö, Á¤º¸ °»½Å, ¹× ÁÖ¼® µî°ú °°Àº °£´ÜÇÑ ÀÛ¾÷º¸´Ù´Â º¸´Ù ´Ù¾çÇÑ ±â´ÉÀ» ÇÊ¿ä·Î Çϰí ÀÖ´Ù. ¶ÇÇÑ ºÐ»ê ȯ°æ, °øµ¿ÀÛ¾÷ ȯ°æ, ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸½Ã½ºÅÛ µîÀÇ »óȲ¿¡¼ ÇÊ¿ä·Î ÇÏ´Â ºü¸¥ ¼Óµµ¿Í °£Æí¼ºÀ» Á¦°øÇϱâ À§ÇÑ ÇÁ·ÎÅäÄÝÀÌ ÇÊ¿äÇÏ°Ô µÇ¾ú°í À̸¦ ¸ñÀûÀ¸·Î HTTP ÀÀ¿ë ÇÁ·ÎÅäÄÝÀÌ ¼³°èµÇ¾ú´Ù.
ÀÌ¿¡ µû¶ó ´ë»óüÀÇ À§Ä¡³ª À̸§À» ÁöÁ¤ÇÏ´Â URI¿¡ ÀÇÇØ Á¦°øµÇ´Â Á¤º¸¸¦ ÀÌ¿ëÇÏ¿©, ´ë»ó ÈÀÏÀ» ¾î¶»°Ô Ȱ¿ëÇÒ °ÍÀΰ¡ ÁöÁ¤ÇÏ´Â methodÀÇ ÁýÇÕ¿¡ µû¶ó¼ ÀûÀýÇÑ ±â´É µ¿ÀÛÀ» ÇϰԲû HTTP´Â ¼³°èµÇ¾î ÀÖ´Ù. ÀÌ¿¡ µû¶ó ¼Û¼ö½ÅµÇ´Â ÇÁ·ÎÅäÄÝ ±¸¼ºÃ¼´Â ¸Þ½ÃÁö¶ó´Â À̸§À¸·Î ºÒ¸®¿ì¸ç Internet Mail°ú MIME¿¡¼ »ç¿ëÇÏ´Â ¹æ½Ä°ú ºñ½ÁÇÏ°Ô ±¸¼ºµÇ¾î ¼Û¼ö½ÅµÈ´Ù.
¶ÇÇÑ HTTP´Â »ç¿ëÀÚ ºê¶ó¿ìÀú¿Í ÇÁ¶ô½Ã ¼¹ö ¶Ç´Â °ÔÀÌÆ®¿þÀÌ »çÀÌ¿¡¼ SMTP, NNTP, FTP, Gopher, WAIS µî°ú °°Àº ±âÁ¸ ÇÁ·ÎÅäÄݰúÀÇ Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ÇÁ·ÎÅäÄÝÀÇ ¿ªÇÒÀ» ÇϰԲû ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ¿¡ µû¶ó ±âÁ¸ÀÇ ÃàÀûµÇ¾î ÀÖ´Â ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸µéÀ» ±×´ë·Î Ȱ¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ¸ç »ç¿ëÀÚ ºê¶ó¿ìÀúÀÇ ±¸Çöµµ ´Ü¼øÈ ½Ãų ¼ö ÀÖ°Ô ÇÑ´Ù.
HTTP ÇÁ·ÎÅäÄÝ ¼³¸í¼¿¡´Â ¿©·¯ °¡Áö ¿ë¾îµéÀÌ ¾²À̰í ÀÖÀ¸¸ç ÁÖ¿ä ¿ë¾îµé¿¡ ´ëÇØ ¼³¸íÇϵµ·Ï ÇÑ´Ù.
HTTP ÇÁ·ÎÅäÄÝÀº ¿ä±¸/ÀÀ´ä (Request/Response) ¹æ½ÄÀ» ÀÌ¿ëÇÏ¿© µ¿ÀÛÇϰí ÀÖ´Ù. Áï, ¿øÇÏ´Â ÇÁ·ÎÅäÄÝ ±â´É(¿¹: GET, HEAD, POST)¿¡ ´ëÇØ ¼ºñ½º ¿ä±¸¸¦ ÇÏ¸é µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇÑ TCP ¿¬°áÀÌ ¸¸µé¾îÁö°í, ¼¹ö°¡ ÀÀ´äÀ» º¸³»¾î µ¥ÀÌŸ Àü¼ÛÀ» ³¡³»¸é ÀÚµ¿ÀûÀ¸·Î ¿¬°áÀÌ ²÷¾îÁö°Ô µÇ´Â °ÍÀÌ´Ù.
Áï, Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö¿ÍÀÇ »çÀÌ¿¡ TCP¸¦ ±â¹ÝÀ¸·Î ÇÑ HTTP ¿¬°áÀ» ¸¸µé°í method, URI, protocol version, Ŭ¶óÀÌ¾ðÆ® Á¤º¸, »ç¿ëÀÚ µ¥ÀÌŸ µî°ú °°ÀÌ ±ÔÁ¤µÇ¾î ÀÖ´Â ¿ä±¸ Çü½Ä¿¡ µû¶ó ¼¹ö¿¡°Ô ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³½´Ù. ¼¹ö´Â ÇÁ·ÎÅäÄÝ ¹öÀü, ¼º°ø ¶Ç´Â ¿À·ùÄÚµå ¹øÈ£, ¼¹ö Á¤º¸, µ¥ÀÌŸ Á¤º¸, »ç¿ëÀÚ µ¥ÀÌŸ µîÀ» Æ÷ÇÔÇÏ´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³½´Ù.
¾Æ·¡ 1.4.1Àý°ú 1.4.2Àý¿¡ ¿ä±¸¿Í ÀÀ´äÀÇ °æ¿ì¿¡ ´ëÇÑ °£´ÜÇÑ ¿¹¸¦ º¸À̰í ÀÖ´Ù.
HTTPÀÇ Request Çü½ÄÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. ù ¹øÂ° Á٠óÀ½¿¡ ¾î¶² ±â´ÉÀ» ÀÌ¿ëÇÏ·Á´ÂÁö ÁöÁ¤À» ÇÑ´Ù. °¡Àå ÀϹÝÀûÀ¸·Î ¾²À̰í ÀÖ´Â °ÍÀÌ GET ÀÌ´Ù. À̰ÍÀº ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô ¹®¼¸¦ º¸³»´Þ¶ó°í ¿äûÇÏ´Â °ÍÀÌ´Ù. ±× ´ÙÀ½¿¡´Â ÈÀÏ À̸§Ã³·³ ´ë»óÀÌ µÇ´Â °ÍÀ» ÁöÁ¤Çϰí ÇöÀç ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ´ÙÀ½¿¡´Â ÀÏ·ÃÀÇ ÁöÁ¤ »çÇ×µéÀ» µ¡ºÙÀÏ ¼ö°¡ ÀÖÀºµ¥, ¿¹¸¦ µé¾î ºê¶ó¿ìÀúÀÇ Á¾·ù³ª ºê¶ó¿ìÀú°¡ ´Ù·ê ¼ö ÀÖ´Â µ¥ÀÌŸ Çü½Ä µîÀÌ´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.
GET /index.html HTTP/1.0 Accept: text/plain Accept: text/html Accept: */* User-Agent: Netscape 1.2
HTTP¿¡¼ÀÇ ÀÀ´ä Çü½Äµµ ¾ÆÁÖ °£´ÜÇÏ°Ô ±¸¼ºµÇ¾î ÀÖ´Ù. ¼¹ö¿¡¼ ¾²À̰í ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü, Request¿¡ ´ëÇÑ ½ÇÇà °á°ú, Àü´ÞÇØÁÙ µ¥ÀÌŸÀÇ Çü½Ä, µ¥ÀÌŸ ±æÀÌ µî°ú °°Àº Ãß°¡ÀûÀÎ Á¤º¸°¡ Àü´ÞµÇ°í, ÀÌ·¯ÇÑ Çì´õ Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â ºóÁÙÀÌ µé¾î°¡°í, µÚÀÌ¾î ½ÇÁ¦ µ¥ÀÌŸ°¡ Àü´ÞµÈ´Ù. µ¥ÀÌŸ Àü´ÞÀÌ ³¡³ª¸é ¼¹ö´Â ¿¬°áÀ» ²÷´Â´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.
HTTP/1.0 200 OK Server: MDMA/0.1 MIME-version: 1.0 Content-type: text/html Last-Modified: Thu Jul 7 00:25:33 1994 Content-Length: 2003 Right here waiting for you...
HTTP ÇÁ·ÎÅäÄÝÀÌ ±¸¼ºµÇ¾î ÀÖ´Â Çü½ÄÀ» Ç¥ÇöÇϱâ À§ÇÑ ¹æ¹ýÀÌ Àִµ¥ ¿©±â¼ »ç¿ëÇÏ´Â °ÍÀº BNF (Backus-Naur Form) Çü½ÄÀÌ¸ç ¿©±â¿¡ ¾à°£ÀÇ º¸ÃæÀ» ÇÏ¿© ÀÌ¿ëÇϵµ·Ï ÇÑ´Ù. À̸¦ À§ÇØ Ç¥Çö Çü½Ä¿¡ ´ëÇÑ ¼³¸íÀ» ¸ÕÀú Çϵµ·Ï Çϰí, ÇÁ·ÎÅäÄÝ Çü½ÄÀÇ Ç¥±â»ó »ç¿ëÇÑ ¾à¼ÓÀ» Á¤ÀÇÇϰí, ÀÌ¾î¼ HTTP ÇÁ·ÎÅäÄݷμ µ¿ÀÛÇÏ´Â ¸Þ½ÃÁöÀÇ Á¾·ù¿Í ±¸Á¶¸¦ »ìÆìº¸µµ·Ï ÇÑ´Ù. TCP/IP ¿¬°áÀ» ÅëÇØ ¼Û¼ö½ÅµÇ´Â HTTP ÇÁ·ÎÅäÄÝ µ¥ÀÌŸ´Â ¸Þ½ÃÁö¶ó´Â Á¾·ù·Î ±¸ºÐµÇ°í ÀÖ´Ù. Áï, ¿ä±¸ ¸Þ½ÃÁö¿Í ÀÌ¿¡ ´ëÇÑ ÀÀ´ä ¸Þ½ÃÁö°¡ ¹Ù·Î ±×°ÍÀÌ´Ù. ÀÌ ¼Ó¿¡ ±¸¼ºµÇ¾î ÀÖ´Â ±Ô°ÝÀÌ HTTP ÇÁ·ÎÅäÄÝ ±Ô°ÝÀÌ µÈ´Ù.
nÀÇ ±âº»°ªÀº 0À̸ç mÀÇ ±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ±×·¯¹Ç·Î "*(element)"´Â 0°³¸¦ Æ÷ÇÔÇØ¼ ¾î¶² °¹¼ö¶óµµ °¡´ÉÇÑ Ç¥Çö¹ýÀÌ´Ù. "1*element"ÀÇ °æ¿ì´Â Àû¾îµµ ÇÑ °³´Â ÀÖ¾î¾ß Çϸç ÃÖ´ë °¹¼ö¿¡´Â Á¦ÇÑÀÌ ¾ø´Ù.
À̰ÍÀÌ *rule°úÀÇ Â÷ÀÌÁ¡À̰í, #rule ¿¡¼µµ
"
¿©±â¼ "\"¸¦ »ç¿ëÇÏ´Â single-character quotingÀº HTTP/1.0¿¡¼´Â Çã¿ëµÇÁö ¾Ê´Â´Ù.
HTTP ÇÁ·ÎÅäÄÝ ±Ô°Ý ¼³¸í¼´Â ¸Þ½ÃÁö ´ÜÀ§ÀÇ ¼³¸íÀ¸·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç À̸¦ À§ÇÏ¿© ¿©·¯ °¡Áö ÆÄ¶ó¹ÌÅͰ¡ Ç¥ÇöµÇ¾î ÀÖ´Ù. ÀÌ·¯ÇÑ ±âº»ÀûÀÎ ÆÄ¶ó¹ÌÅ͵éÀÇ Á¾·ù¿Í ³»¿ëÀ» »ìÆìº¸µµ·Ï ÇÑ´Ù.
HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» Ç¥ÇöÇϱâ À§ÇØ "
ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ³ªÅ¸³»´Â °ÍÀº, ¼Û½ÅÃøÀÌ ¿ä±¸(request)¸¦ º¸³¾ ¶§ »ç¿ëÇÏ´Â
¸Þ½ÃÁöÀÇ Ç¥Çö Çü½ÄÀ» ³ªÅ¸³»°í ¼¹ö³ª ºê¶ó¿ìÀú°¡ ¾î¶² Çü½ÄÀÇ
¸Þ½ÃÁö¸¦ ÀÌÇØÇϰí ó¸®ÇÒ ¼ö ÀÖ´ÂÁö Ç¥½ÃÇÏ´Â Áß¿äÇÑ ¿ä¼ÒÀÌ´Ù.
minor ¹øÈ£°¡ ¹Ù²ð ¶§´Â ¸Þ½ÃÁö ÇØ¼® ¾Ë°í¸®ÁòÀ» º¯°æÇÏÁö ¾Ê°íµµ ÇÁ·ÎÅäÄÝ
±â´É¿¡ ´ëÇÑ º¯È¸¦ ÁÙ ¼ö ÀÖÀ» ¶§À̰í, ÇÁ·ÎÅäÄÝ ³»ÀÇ ¸Þ½ÃÁö Çü½ÄÀÌ ¹Ù²ð
¶§¿Í °°Àº Å« º¯È°¡ µÚµû¸¦ ¶§ major ¹øÈ£¸¦ ¹Ù²Û´Ù.
HTTP ¸Þ½ÃÁöÀÇ ¹öÀüÀº HTTP-Version Çʵ带 ÅëÇØ Ç¥½ÃÇϸç
¸Þ½ÃÁöÀÇ Ã¹ ¹øÂ°
ÁÙ¿¡ ÀÚ¸®ÇÑ´Ù. ¸¸¾à ÇÁ·ÎÅäÄÝ ¹öÀüÀÌ Ç¥½ÃµÇÁö ¾ÊÀ¸¸é ¼ö½ÅÃø¿¡¼´Â
HTTP/0.9 ¹öÀüÀÇ ´Ü¼ø Çü½ÄÀ¸·Î °£ÁÖÇÑ´Ù.
¼¹ö³ª ºê¶ó¿ìÀú¸¦ ±¸ÇöÇϰíÀÚ ÇÒ ¶§ ¹Ýµå½Ã Æ÷ÇԵǾî¾ß ÇÏ´Â HTTP ÇÁ·ÎÅäÄÝÀº
0.9¿Í 1.0 ¹öÀü ¸ðµÎÀ̸ç, ÀÌ ¹®¼ ¼Ó¿¡¼´Â µÑ ´Ù ±â¼úµÇ¾î ÀÖ´Ù.
ÀÌ ¹®¼¿¡ Á¤ÀǵǾî ÀÖ´Â Full-Request ¶Ç´Â Full-Response
Çü½ÄÀÇ ¸Þ½ÃÁö¸¦
Àü¼ÛÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â "HTTP/1.0"À̶õ
HTTP-VersionÀ» ³ªÅ¸³»¾î¾ß ÇÑ´Ù.
HTTP/1.0 ¼¹ö´Â, HTTP/0.9¿Í HTTP/1.0 ¿ä±¸¸¦ À§ÇÑ
Request-Line Ç¥Çö Çü½ÄÀ»
ÀνÄÇÒ ¼ö ÀÖ¾î¾ß Çϰí, HTTP/0.9¿Í HTTP/1.0 Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Â À¯È¿¿ä±¸
(valid request)¸¦ ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß Çϰí, ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÑ ÇÁ·ÎÅäÄÝ
¹öÀü°ú °°Àº ¸Þ½ÃÁö Çü½ÄÀ¸·Î ÀûÀýÈ÷ ÀÀ´äÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
HTTP/1.0 Ŭ¶óÀÌ¾ðÆ®´Â, HTTP/1.0 ÀÀ´ä Çü½ÄÀÎ
Status-LineÀÇ ¸Þ½ÃÁö Çü½ÄÀ»
ÀνÄÇÒ ¼ö ÀÖ¾î¾ß Çϰí, HTTP/0.9 ¶Ç´Â HTTP/1.0 Çü½ÄÀ¸·Î µµÂøµÈ À¯È¿ÀÀ´ä
(valid response)À» ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ ÀÀ¿ë ÇÁ·Î±×·¥Àº ÀÚ½ÅÀÇ ÇÁ·ÎÅäÄÝ ¹öÀü°ú ´Ù¸¥ ¿ä±¸¸¦
Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¼ö½ÅÇßÀ» ¶§´Â ÀÌÀÇ Ã³¸®¸¦ º¸´Ù ½ÅÁßÇÏ°Ô ÇÏ¿©¾ß ÇÑ´Ù.
ÇÁ·ÎÅäÄÝ ¹öÀüÀº ¼Û½ÅÃø Ŭ¶óÀ̾ðÆ®ÀÇ ÇÁ·ÎÅäÄÝ Ã³¸® ´É·ÂÀ» ³ªÅ¸³»´Â °ÍÀ̹ǷÎ
ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ¼Û½ÅÃø ¹öÀüº¸´Ù ³ôÀº ¸Þ½ÃÁö¸¦ Àü´ÞÇϸé Àý´ë ¾È µÈ´Ù.
¸¸¾à ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÇÀÇ ÇÁ·ÎÅäÄÝ ¹öÀüº¸´Ù ³ôÀº ¹öÀüÀÇ ¼Û½ÅÃø ¿ä±¸°¡
µµÂøÇÏ¸é ¿ä±¸ÇÑ ÇÁ·ÎÅäÄÝ ¹öÀüÀ» ³·Ã߰ųª ¿À·ù¸¦ µÇµ¹·Á º¸³»¾î¾ß ÇÑ´Ù.
¸¸¾à ³·Àº ¹öÀüÀÇ ¼Û½ÅÃø ¿ä±¸°¡ µµÂøÇϸé Áß°èÇØÁֱ⠾ռ ¹öÀüÀ» ³ôÀÌ´Â
¹æ¹ýµµ °¡´ÉÇÏ´Ù. ÇØ´ç ¼Û½ÅÃø ¿ä±¸¿¡ ´ëÇÑ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌÀÇ ÀÀ´äÀº
À§¿¡¼ ¾ð±ÞÇÑ ¼¹ö ¿ä±¸»çÇ×À» ¸¸Á·½ÃÄÑ¾ß ÇÑ´Ù.
URI´Â ÇöÀç ¿©·¯ °¡Áö À̸§À¸·Î ºÒ¸®¿ì°í ¾²À̰í ÀÖ´Ù. ¿¹¸¦ µé¾î, WWW addresses,
Universal Document Identifiers, Universal Resource Identifiers µîÀ̸ç, ÃÖÁ¾ÀûÀ¸·Î
URL (Uniform Resource Locators) ¿Í URN (Uniform Resource Names)ÀÇ °áÇÕÀ¸·Î
Á¤Àǵǰí ÀÖ´Ù. À̰ÍÀº ÇϳªÀÇ ´ë»óü¿¡ ´ëÇØ À̸§, À§Ä¡, ¼ºñ½º, ÇÁ·ÎÅäÄÝ µîµî
¿©·¯ °¡Áö ¿ä¼ÒµéÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ°Ô Çü½ÄÈ ½ÃŲ °ÍÀÌ´Ù.
HTTP ÇÁ·ÎÅäÄÝ¿¡ ÀÖ¾î¼ÀÇ URI¶õ ¾î¶² ¾Ë·ÁÁø URI¿¡ ±â¹ÝÇÏ¿© »ç¿ëÇϱ⿡ µû¶ó
Àý´ë Çü½Ä ¶Ç´Â »ó´ë Çü½ÄÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. µÎ °¡Áö ¿ä¼ÒÀÇ Â÷ÀÌ´Â
Ç¥Çö ¹æ¹ýÀ¸·Î ±¸ºÐÇÒ ¼ö Àִµ¥, Àý´ë URI Çü½ÄÀº Ç×»ó scheme À̸§°ú
µÚµû¸£´Â ":"ÀÇ Ç¥½Ã¿¡ ÀÇÇØ ±¸ºÐµÈ´Ù.
URL Çü½Ä°ú Àǹ̿¡ °üÇÑ ³»¿ëÀº RFC 1738°ú RFC 1808À» ÂüÁ¶ÇÏ¸é µÈ´Ù. À§¿¡
Ç¥½ÃµÇ¾î ÀÖ´Â BNF Ç¥Çö½Ä °¡¿îµ¥ RFC 1738¿¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº
rationalÀ̶õ
°ÍÀÌ ¾²À̰í ÀÖ´Ù. À̰ÍÀº rel_path ÁÖ¼Ò ºÎºÐ¿¡ ¾²ÀÌ´Â
unreserved ±ÛÀÚ ÁýÇÕ¿¡
ÇѰ谡 Àֱ⠶§¹®ÀÌ´Ù. HTTP ÇÁ¶ô½Ã´Â RFC 1738¿¡ Á¤ÀǵÇÁö ¾ÊÀº URI¸¦ °¡Áø
¿ä±¸¸¦ ¼ö½ÅÇÒ ¼öµµ ÀÖ´Ù.
http Ç¥Çö½ÄÀº HTTP ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ¿© Ȱ¿ëÇÒ ³×Æ®¿öÅ© ÀÚ¿øÀ» Áö½ÃÇÏ´Â µ¥¿¡
¾²ÀδÙ.
À§ ±ÔÁ¤Àº ÀÌ¿ëÇϰíÀÚ ÇÏ´Â ³×Æ®¿öÅ© ÀÚ¿øÀÌ À§Ä¡Çϰí ÀÖ´Â °÷ÀÇ URL Ç¥½Ã¸¦ Çϱâ
À§ÇÑ °ÍÀ̸ç, port ºÎºÐ¿¡ ¾Æ¹«·± ¼ýÀÚ°¡ ¾ø´Ù¸é WWW ¼ºñ½º¸¦ À§ÇØ ÇÒ´çµÇ¾î ÀÖ´Â
80¹øÀ¸·Î ÀνÄÇÑ´Ù.
À§¿¡ Ç¥½ÃµÈ »çÇ×ÀÇ Àǹ̴ ÁöÁ¤µÈ ÀÚ¿øÀÌ ÇØ´ç hostÀÇ
abs_pathÀÇ Àå¼Ò¿¡
ÀÖÀ¸¸ç, ÀÌ ¼¹ö È£½ºÆ®´Â ÁöÁ¤µÈ port ¹øÈ£¿¡¼ TCP ¿¬°áÀ» ¸Î´Â´Ù´Â °ÍÀÌ´Ù.
À̶§ abs_path´Â ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ
Request-URI°¡ µÇ°í, ¸¸¾à abs_path°¡
URL¿¡ Ç¥½ÃµÇ¾î ÀÖÁö ¾Ê´Ù¸é Request-URI¿¡ »ç¿ëµÉ ¶§´Â
"/" Ç¥½Ã°¡ ¹Ýµå½Ã µé¾î°¡ ÀÖ¾î¾ß ÇÑ´Ù.
HTTP ÇÁ·ÎÅäÄÝÀº TCP¿Í °°Àº ¼ö¼Û°èÃþ ÇÁ·ÎÅäÄÝÀÇ Á¾·ù¿¡ »ó°ü¾øÀÌ ¾²ÀÏ ¼ö
ÀÖ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. ±×·¯³ª À§¿Í °°Àº URL Ç¥½Ã ¹æ½ÄÀº TCP¿¡¼³ª ¾²ÀÏ ¼ö
ÀÖ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î ´Ù¸¥ Á¾·ùÀÇ ¼ö¼Û°èÃþ¿¡ HTTP°¡ ¾²À̱â À§Çؼ´Â
±×¿¡ ¸Â´Â URI Ç¥Çö ¹æ½ÄÀ» Á¤ÀÇÇÏ¿©¾ß ÇÑ´Ù.
HTTP/1.0 ÀÀ¿ë¿¡¼´Â ¼¼ °¡Áö Çü½ÄÀÇ ÀÏÀÚ/½Ã°£ Ç¥Çö ¹æ½ÄÀ» Áö¿øÇÑ´Ù.
ù ¹øÂ° Çü½ÄÀº ÀÎÅÍ³Ý Ç¥ÁØÀ¸·Î¼ ¾²ÀÌ´Â °ÍÀ̸ç RFC 1123¿¡¼ Á¤ÀǵÈ
±æÀÌ Á¦ÇÑ¿¡ µû¶ó Ç¥½ÃµÈ´Ù. µÎ ¹øÂ° Çü½ÄÀº RFC 850ÀÇ Çü½ÄÀ» µû¸£°í
ÀÖÀ¸¸ç ³× ÀÚ¸®ÀÇ ³âµµ¸¦ Ç¥½ÃÇϱâ´Â ºÒ°¡´ÉÇÑ °ÍÀÌ´Ù. HTTP/1.0À»
Áö¿øÇϴ Ŭ¶óÀÌ¾ðÆ®³ª ¼¹ö´Â À§ ¼¼ °¡Áö Çü½ÄÀ» ¸ðµÎ ÀνÄÇÒ ¼ö ÀÖ¾î¾ß
ÇÏÁö¸¸ ¸Þ½ÃÁö¸¦ ¸¸µé ¶§´Â ¼¼ ¹øÂ° Çü½ÄÀ» ¸¸µé¾î¼´Â ¾È µÈ´Ù. ¿Ö³ÄÇϸé
ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀ̸¦ ÅëÇØ non-HTTP ÀÀ¿ë ÇÁ·Î±×·¥µéÀÌ SMTP ¶Ç´Â NNTP¸¦
ÀÌ¿ëÇÏ¿© µ¥ÀÌŸ¸¦ Àü´ÞÇÒ ¶§ »ý¼ºµÇ´Â ÀÏÀÚ/½Ã°£À» ÀνÄÇÒ ¼ö ÀÖ¾î¾ß
Çϱ⠶§¹®ÀÌ´Ù.
¸ðµç HTTP/1.0 ÀÏÀÚ/½Ã°£ »çÇ×Àº ¿¹¿Ü¾øÀÌ ¹Ýµå½Ã GMT Çü½ÄÀ¸·Î Ç¥ÇöµÇ¾î¾ß
ÇÑ´Ù. ¾Õ¼ µÎ °¡Áö Ç¥Çö Çü½ÄÀº GMT·Î¼ Ç¥½ÃµÇ¾î ÀÖÀ¸³ª ¼¼ ¹øÂ° Çü½ÄÀº
»ý·«µÇ¾î ÀÖ´Ù. ÇÏÁö¸¸ Ç¥½ÃµÇ¾î ÀÖÁö ¾ÊÀº asctime Çü½ÄÀÏÁö¶óµµ
GMT¶ó°í °£ÁÖÇϵµ·Ï ÇÑ´Ù.
À̰ÍÀ» ÇÁ·ÎÅäÄÝ ±Ô°ÝÀÇ Çü½ÄÀ¸·Î ´Ù½Ã Ç¥ÇöÇÏ¸é ¾Æ·¡¿Í °°´Ù.
ÀÌ Á¤ÀÇ¿¡ µû¸£¸é, US-ASCII¿Í °°Àº ´Ü¼øÇÑ º¯È¯Ç¥·ÎºÎÅÍ ISO 2022ÀÇ
°æ¿ì¿¡¼¿Í °°ÀÌ º¹ÀâÇÑ º¯È¯Ç¥¿¡ À̸£±â±îÁö ´Ù¾çÇÑ Á¾·ùÀÇ character
encodingµéÀº Çã¿ëÇÑ´Ù. ÇÏÁö¸¸ MIME character set À̸§°ú °ü·ÃµÈ
Á¤ÀÇ´Â 8bit µ¥ÀÌŸ·ÎºÎÅÍ ±ÛÀÚ·ÎÀÇ º¯È¯¿¡ °üÇÑ »çÇ×À» ¿ÏÀüÇÏ°Ô ¸í½ÃÇÏ¿©¾ß
ÇÑ´Ù. ¿ÏÀüÇÑ º¯È¯ °ü°è¸¦ Á¤ÀÇÇϱâ À§ÇØ ´Ù¸¥ ¼ö´ÜÀ» ÅëÇÑ ¿ÜºÎ Á¤º¸¸¦
Ȱ¿ëÇØ¼´Â ¾È µÈ´Ù.
HTTP character setÀº ´ë¼Ò¹®ÀÚ ±¸º°À» ÇÏÁö ¾ÊÀ¸¸ç, HTTP ±¸Çö½Ã¿¡ ±Ç°íÇÏ´Â
¹®ÀÚ ÁýÇÕÀÇ Á¾·ù·Î¼´Â ¾Æ·¡¿Í °°´Ù.
HTTP¿¡¼´Â ¹®ÀÚÁýÇÕÀÇ Á¾·ù·Î¼ ÀÓÀÇÀÇ ÅäÅ«À» Çã¿ëÇϰí ÀÖÀ¸¹Ç·Î À§¿¡
±ÔÁ¤µÇÁö ¾ÊÀº ´Ù¸¥ °Íµµ »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª, À̰ÍÀº IANA ¹®ÀÚÁýÇÕ µî·ÏÇ¥¿¡
µî·ÏµÇ¾î ÀÖ´Â °ÍÀ̾î¾ß Çϸç, ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼µµ ¹®ÀÚÁýÇÕÀÇ »ç¿ëÀ»
IANA¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍÀ¸·Î ÇÑÁ¤ÇØ¾ß ÇÑ´Ù.
ÇØ´ç ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëµÇ¾î ÀÖ´Â ÀÎÄÚµù º¯È¯ ¹æ½ÄÀ» ¾Ë¸®±â À§ÇØ »ç¿ëÇÑ´Ù.
À̰ÍÀº ½ÇÁ¦ µ¥ÀÌŸÀÇ ÈÀÏ Çü½ÄÀ̳ª ³»¿ëÀ» ¼Õ»ó½ÃŰÁö ¾Ê°í µ¥ÀÌŸ¸¦
¾ÐÃàÇϰųª º¸¾ÈÀ» À§ÇØ ¾ÏÈ£ÈÇÒ ¶§ ÁÖ·Î ¾²ÀÏ ¼ö ÀÖ´Ù. ÀÌ ¹æ½ÄÀ¸·Î
ÀÎÄÚµùµÈ µ¥ÀÌŸ°¡ ÀúÀåµÇ¾î ÀÖ´Ù°¡ ¼Û¼ö½ÅµÇ¾î ½ÇÁ¦ Ȱ¿ëµÇ±â Àü¿¡´Â
µðÄÚµùÀÌ µÇ¾î¾ß ÇÑ´Ù.
¿©±â¼ gzip ¶Ç´Â compress´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â
x-gzip°ú x-compress·Î
°¢°¢ µ¿ÀÏÇÏ°Ô Ãë±ÞµÈ´Ù. Ç¥½ÃµÈ ¸ðµç content-coding º¯¼ö´Â
´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾Ê´Â´Ù.
HTTP ÇÁ·ÎÅäÄÝ¿¡¼´Â µ¥ÀÌŸ Çü½Ä Ç¥ÇöÀÇ °³¹æ¼º°ú È®À强À» À§ÇØ
Content-Type Çì´õ Çʵ带 µÎ°í¼ µ¥ÀÌŸ Çü½ÄÀ» Ç¥ÇöÇϰí ÀÖ´Ù.
µ¥ÀÌŸ Çü½ÄÀº Content-Type ÇÊµå ´ÙÀ½¿¡ Ç¥½ÃµÉ µ¥ÀÌŸ Çü½Ä
(media type)Àº ´ÙÀ½°ú °°Àº Ç¥Çö½Ä¿¡ µû¸¥´Ù. Content-Type ÇʵåÀÇ
Ç¥Çö½ÄÀº Entity ºÎºÐ¿¡¼ ´Ù½Ã ¼³¸íµÈ´Ù.
ÆÄ¶ó¹ÌÅÍ´Â type/subtype¿¡ µÚÀ̾î attribute¿Í valueÀÇ
½ÖÀ¸·Î ±¸¼ºµÈ´Ù.
¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
¿©±â¼ type, subtype, ¹× parameter attribute À̸§Àº ´ë¼Ò¹®ÀÚ ±¸ºÐÀ» ÇÏÁö
¾ÊÁö¸¸, parameter value´Â parameter Á¾·ù¿¡ µû¶ó ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÒ ¼öµµ ÀÖ°í
±¸ºÐÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù.
ÀÌ·¯ÇÑ Ç¥Çö½Ä¿¡ ÀÖ¾î LWS´Â type°ú subtype »çÀÌ¿¡ Àý´ë Çã¿ëµÇÁö ¾ÊÀ¸¸ç,
¶ÇÇÑ attribute¿Í ÀÌÀÇ value »çÀÌ¿¡µµ Çã¿ëµÇÁö ¾Ê´Â´Ù. ÀνÄÇÒ ¼ö ¾ø´Â
parameter¸¦ °¡Áø media typeÀÌ ¼ö½ÅµÇ¸é Ŭ¶óÀÌ¾ðÆ®´Â Ã³¸®ÇÒ ¼ö ¾ø´Â
Á¾·ùÀÇ media typeÀ¸·Î¼ Àû¿ëÇÑ´Ù.
¿À·¡ ÀüÀÇ ÀϺΠHTTP ±¸Çö ÇÁ·Î±×·¥¿¡¼´Â media typeÀÇ parameter¸¦
ÀνÄÇÒ ¼ö ¾ø¾ú´Ù. HTTP/1.0 ±¸Çö ÇÁ·Î±×·¥¿¡¼´Â ¸Þ½ÃÁö ³»¿ëÀÌ ¾î¶² Á¾·ùÀÎÁö
ÁöÁ¤ÇÒ Çʿ䰡 ÀÖÀ» ¶§¸¸ media typeÀÇ parameter¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
media-typeÀÇ value´Â IANA¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍÀ» »ç¿ëÇÏ¸é µÈ´Ù. µî·ÏµÇ¾î ÀÖÁö
¾ÊÀº °ÍÀ» »ç¿ëÇÏ´Â °ÍÀº ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Ï´Ù.
»ç¿ëÇϰí ÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÖ±â À§ÇØ »ç¿ëµÈ´Ù.
ºó °ø¹é Ç¥½Ã(whitespace)¸¦ ÀÌ¿ëÇÏ¿© ÇØ´ç ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÁÖ¿ä ºÎºÐ¿¡
´ëÇÑ Á¤º¸¸¦ ¿¬ÀÌ¾î¼ Ç¥½ÃÇÒ ¼öµµ ÀÖ´Ù. ±×·¯¹Ç·Î Á߿䵵°¡ °¡Àå ³ôÀº
»çÇ×À» ¸ÕÀú Ç¥½ÃÇÏ°í µÚ ÀÌ¾î¼ ´Ù¸¥ »çÇ×µéÀ» Ç¥½ÃÇϵµ·Ï ÇÑ´Ù.
ÀÌ¿¡ ÀÇÇÑ ¿¹¸¦ µé¾îº¸¸é ¾Æ·¡¿Í °°´Ù.
¶Ç ´Ù¸¥ ¿¹·Î¼,
ÀÌ·¯ÇÑ °ÍÀ» º¼ ¼ö ÀÖ´Ù.
ÀÌ¿Í °°Àº ÇÁ·Î±×·¥ Á¤º¸¸¦ Ç¥½ÃÇÒ ¶§´Â °£´ÜÇÏ°Ô ÇÙ½É »çÇ׸¸ ³ªÅ¸³ª°Ô
ÇÏ¿©¾ß Çϸç, Á¦Ç° ¼±ÀüÀ̳ª Áß¿äÇÏÁö ¾Ê´Â »çÇ×À» ¾Ë¸°´ÙµçÁö ÇÏ´Â °ÍÀº
Çã¿ëµÇÁö ¾Ê´Â´Ù. ±×¸®°í product-versionÀÇ ÀÚ¸®¿¡´Â ¾î¶² Á¾·ùÀÇ
±ÛÀÚ°¡ ¿À´õ¶óµµ »ó°üÀÌ ¾øÀ¸³ª, ¹Ýµå½Ã ¹öÀüÀ» ³ªÅ¸³»¾î °°Àº ÇÁ·Î±×·¥ÀÇ
°³·® Á¾·ù¸¦ ±¸ºÐÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿©¾ß ÇÑ´Ù.
HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛÀ» À§ÇØ Á¸ÀçÇÏ´Â ¸Þ½ÃÁö´Â Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¼¹ö·Î º¸³»´Â
request ¸Þ½ÃÁö¿Í ¹Ý´ë·Î ¼¹ö¿¡¼ Ŭ¶óÀÌ¾ðÆ®·Î º¸³»´Â response ¸Þ½ÃÁö·Î ±¸¼ºµÇ°í,
À̰ÍÀº ¸ðµÎ ³× °¡Áö Á¾·ù·Î ÇØ¼ ±¸¼ºµÇ¾î ÀÖ´Ù.
µÎ °¡Áö´Â ¿¹ÀüÀÇ 0.9 ¹öÀüÀÇ ÇÁ·ÎÅäÄÝ¿¡¼ ¾²ÀÌ´ø °ÍÀÌ°í ³ª¸ÓÁö µÎ °¡Áö´Â ÇöÀçÀÇ
1.0 ¹öÀü ÇÁ·ÎÅäÄÝ¿¡¼ ¾²ÀÌ´Â °ÍÀÌ´Ù. ÀÌ¿¡ ´ëÇÑ Ç¥Çö Çü½ÄÀÌ ¾Æ·¡¿Í °°´Ù.
Full-Request¿Í Full-Response´Â µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇØ
RFC 822¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â
¸Þ½ÃÁö Çü½ÄÀ» »ç¿ëÇÑ´Ù. °¢ ¸Þ½ÃÁö Çü½ÄÀº ¼±Åà °¡´ÉÇÑ ¸î °¡Áö Çì´õ Çʵå¿Í
½ÇÁ¦ µ¥ÀÌŸ ºÎºÐÀÎ Entity-Body·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
Entity-Body´Â Çì´õ ºÎºÐ°úÀÇ
±¸ºÐÀ» ÇÑ ÁÙÂ¥¸® ºó °ø¹éÀ¸·Î¼ Çϰí ÀÖ´Ù.
ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô ¹®¼ ¿äûÀ» ÇÒ ¶§, ºê¶ó¿ìÀú°¡ »ç¿ëÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü¿¡
µû¶ó¼ Simple-Request Çü½ÄÀ̳ª Full-Request Çü½ÄÀ̳ª µÑ Áß
Çϳª¸¦ ¸¸µé¾î¼
¿ä±¸ÇÏ°Ô µÈ´Ù. ±×·¯¸é ¼¹ö´Â ºê¶ó¿ìÀú°¡ ¿ä±¸ÇÑ ÇÁ·ÎÅäÄÝ ¹öÀü¿¡ µû¶ó¼ ÀÌ¿¡ ´ëÇÑ
ÀÀ´äÀ¸·Î Simple-Response ³ª Full-Response Çü½ÄÀÇ ÀÀ´äÀ» Àü´ÞÇÑ´Ù.
ÀÌ·¯ÇÑ ¸Þ½ÃÁö´Â ÀÀ¿ë ÇÁ·ÎÅäÄÝ ·¹º§¿¡¼ ¸¸µé¾îÁö´Â °ÍÀ̹ǷΠ½ÇÁ¦·Î ÀÎÅͳÝÀ» ÅëÇØ
Àü´ÞÀÌ µÉ ¶§´Â Ãß°¡ÀûÀÎ °úÁ¤ÀÌ ´õ Á¸ÀçÇÏ°Ô µÈ´Ù. ¸ÕÀú ºê¶ó¿ìÀú´Â ¹®¼ ¿ä±¸¸¦ À§ÇÑ
HTTP ¿ä±¸ ¸Þ½ÃÁö¸¦ À§¿¡ Á¤ÀÇ¿¡ µû¶ó ¸¸µé°í, À̰ÍÀº TCP/IP ÇÁ·ÎÅäÄÝÀ» ±â¹ÝÀ¸·Î ÇÏ´Â
ÀÎÅͳÝÀ» ÅëÇØ Àü´ÞµÇ¾î¾ß ÇϹǷÎ, TCP ÇÁ·ÎÅäÄÝ¿¡¼´Â À§¿¡¼ ¸¸µç ¸Þ½ÃÁö ¾Õ¿¡´Ù
TCP ÇÁ·ÎÅäÄÝÀ» À§ÇÑ Çì´õ¸¦ Ãß°¡Çϰí, ±× ´ÙÀ½ ´Ü°èÀÎ IP ÇÁ·ÎÅäÄÝ¿¡¼ IP ÇÁ·ÎÅäÄÝÀ»
À§ÇÑ Çì´õ¸¦ ¾Õ ºÎºÐ¿¡ Ãß°¡Çؼ º¸³»°Ô µÈ´Ù.
IP ÇÁ·ÎÅäÄÝ¿¡¼ ¸¸µé¾îÁø Çì´õ´Â
ÀÎÅͳÝÀ» ¿©ÇàÇÏ´Â °¡¿îµ¥ Áß°£ °æ·Î»óÀÇ ¶ó¿ìÅÍ¿¡¼ ¸ñÀûÁö±îÁöÀÇ °æ·Î¸¦ ã±â À§ÇØ
ÂüÁ¶°¡ µÇ°í, TCP ÇÁ·ÎÅäÄÝ¿¡¼ ¸¸µé¾îÁø Çì´õ´Â ¸ñÀûÁö¿¡ µµÂøÇؼ ¼Ó¿¡ µç HTTP
¸Þ½ÃÁö¿¡ µ¥ÀÌŸ ¼Õ»ó°ú °°Àº ¹®Á¦°¡ ¾øÀÌ Á¦´ë·Î µµÂøÇß´ÂÁö È®ÀÎÇØº¸±â À§ÇØ ¾²À̰Ô
µÈ´Ù.
±×·± ´ÙÀ½¿¡ HTTP ÇÁ·ÎÅäÄÝÀÌ HTTP ¸Þ½ÃÁö¸¦ ÇØ¼®Çϰí ÀÌ¿¡ µû¶ó ¼¹ö´Â ÀûÀýÇϰÔ
µ¿ÀÛÇÑ´Ù. ÀÌ·¸°Ô µ¿ÀÛÇÑ °á°ú¸¦ HTTP ÀÀ´ä ¸Þ½ÃÁö·Î ¸¸µé°í À§¿¡¼ ¼³¸íÇÑ °úÁ¤À»
¶È°°ÀÌ °ÅÃÄ ÃÖÃÊ¿¡ ¿ä±¸ÇÑ ºê¶ó¿ìÀú·Î Àü´ÞµÈ´Ù.
µû¶ó¼ HTTP ÇÁ·ÎÅäÄÝÀÌ ¾î¶»°Ô ±¸¼ºµÇ¾î ÀÖ´ÂÁö ¾Ë°íÀÚ ÇÑ´Ù¸é À§ ³× °¡Áö ¸Þ½ÃÁöÀÇ
±¸¼º Çü½ÄÀ» »ìÆìº¸¸é µÇ´Â °ÍÀÌ´Ù. À̰ÍÀÌ HTTP ÇÁ·ÎÅäÄÝÀÇ ¸ðµç °ÍÀÌ´Ù.
0.9 ¹öÀü¿¡¼ÀÇ HTTP ¸Þ½ÃÁö Çü½ÄÀº ¾Æ·¡¿Í °°ÀÌ ´Ü¼øÇÏ°Ô µÇ¾î ÀÖ´Ù.
¿©±â¼´Â ¾î¶² Á¾·ùÀÇ Çì´õ Á¤º¸µµ Çã¿ëµÇÁö ¾ÊÀ¸¸ç, ´ÜÁö ¿ä±¸ ¹æ¹ýÀ¸·Î¼
GETÀ̶õ request method°¡ ¾²À̰í, ÀÌ¿¡ ´ëÇÑ ¿ä±¸ ¹®¼ÀÇ URI°¡ Ç¥ÇöµÉ
»ÓÀÌ´Ù.
ÀÌ·¯ÇÑ 0.9 ¹öÀü HTTP ÇÁ·ÎÅäÄÝ ¿ä±¸/ÀÀ´ä¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â method ´Â
GET Çϳª »ÓÀÌ´Ù. ±×·¯¹Ç·Î ºê¶ó¿ìÀú´Â ¼¹ö¿¡°Ô ¹®¼¸¦ º¸³» ´Þ¶ó°í ÇÏ´Â ¿äû¸¸
°¡´ÉÇÏ¸ç ¼¹ö¿¡°Ô ¹®¼¸¦ ¿Ã¸®°Å³ª Áö¿ì°Å³ª ÇÏ´Â ±â´ÉÀº ºÒ°¡´ÉÇÏ´Ù.
GETÀ» ÅëÇØ
¹®¼¸¦ ¿äûÇÏ¸é¼ ÇØ´çÇÏ´Â ¹®¼ÀÇ URI ¸¦ ÁöÁ¤ÇØ¾ß ÇÒ °ÍÀ̸ç À̰ÍÀÌ
Request-URI¿¡ ÇØ´çÇÑ´Ù. ÀÌ·¯ÇÑ ¿äû¿¡ µû¸¥ ÀÀ´äÀÌ
Entity-Body·Î¼ ½Ç·Á¿À°Ô µÈ´Ù. À̶§ Àü´ÞµÇ´Â ¹®¼ÀÇ media typeÀÌ
Ç¥½ÃµÉ ¼ö ¾ø±â ¶§¹®¿¡ Simple-Request Çü½ÄÀÇ »ç¿ëÀº Áö¾çÇØ¾ß ÇÑ´Ù.
HTTP/1.0 ¹öÀü¿¡¼´Â 0.9 ¹öÀü¿¡ ºñÇØ º¸´Ù ´Ù¾çÇÑ ±â´ÉµéÀ» Á¦°øÇÑ´Ù. ÀÌ¿¡ µû¶ó
¸Þ½ÃÁö ±¸¼º Çü½ÄÀº ÈξÀ ´õ º¹ÀâÇÑ ÇüŸ¦ ¶ì°í ÀÖ´Ù.
À§¿¡¼ Full-RequestÀÇ ¿¹¸¦ µéÀÚ¸é ÀÌ¿Í °°Àº Ç¥Çö ¹æ½Ä¿¡ ÀÇÇØ
´ÙÀ½°ú °°Àº ¿¹µéÀÌ °¡´ÉÇÔÀ» ¾Ë ¼ö ÀÖ´Ù.
Full-ResponseÀÇ °æ¿ìµµ ¸¶Âù°¡Áö·Î »ìÆìº¼ ¼ö ÀÖ´Ù.
°¢ °æ¿ì¿¡¼ º¸µíÀÌ Entity-Body´Â CRLF ¿¡ ÀÇÇØ °ø¹é ÁÙÀÌ
Ãß°¡µÇ¾î ±¸ºÐµÇ°í ÀÖ´Ù.
¾Õ¼ ¸Þ½ÃÁö Çʵåµé¿¡ º¸¸é, General-Header, Request-Header,
Response-Header, Entity-Header µî°ú °°ÀÌ ³× °¡Áö Çì´õ
Çü½ÄÀÌ ÀÖ´Ù. ¿©±â¿¡¼ °øÅëÀûÀ¸·Î »ç¿ëÇÏ´Â
Ç¥Çö Çü½ÄÀº RFC 822ÀÇ 3.1Àý¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ Çì´õÀÇ ¼ø¼´Â Áß¿äÇÏÁö ¾ÊÀ¸³ª °¡´ÉÇÏ´Ù¸é ¾Æ·¡¿¡ ³ª¿µÇ¾î ÀÖ´Â ¼ø¼Ã³·³,
General-Header°¡ ¸ÕÀú ³ª¿À°í ÀÌ¾î¼ Request-Header ¶Ç´Â
Response-Header°¡ ³ª¿À°í
±× ´ÙÀ½¿¡ Entity-Header Çʵ尡 ³ª¿À´Â °ÍÀÌ ÁÁ´Ù.
°¢ Çì´õ Çʵå´Â À̸§°ú µÚÀÌÀº ":", ÇÑ °³Â¥¸® ºóÄ (sinle space, SP),
±×¸®°í ÇʵåÀÇ value·Î ±¸¼ºµÈ´Ù. ÇʵåÀÇ À̸§Àº ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾Ê´Â´Ù.
Çì´õ Çʵå´Â, ±ÇÀåÇÏ´Â
°ÍÀº ¾Æ´ÏÁö¸¸, Àû¾îµµ ÇÑ °³ÀÇ SP ¶Ç´Â HT Ç¥½Ã¸¦ ÅëÇØ ÁÙ
¹Ù²Ù±â ÇÏ¿© ¿©·¯ ÁٷΠǥ½ÃÇÒ ¼ö ÀÖ´Ù.
field-value°¡ #(values)¿Í °°Àº ¹æ½Ä¿¡ ÀÇÇØ
","·Î ±¸ºÐµÇ´Â ¿©·¯ °³ values·Î¼
Ç¥ÇöµÈ´Ù¸é °°Àº field-nameÀ» °¡Áø ¿©·¯ °³ÀÇ
HTTP-header Çʵå·Î Ç¥ÇöµÉ ¼ö ÀÖ´Ù.
ÀÌ °æ¿ì¿¡´Â ¹Ýµå½Ã ¿©·¯ °³ÀÇ Çì´õ Çʵ带 ÇϳªÀÇ
"field-name:field-value"ÀÇ ½ÖÀ¸·Î °áÇÕÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
General Header´Â Full-Request ¸Þ½ÃÁö¿Í Full-Response ¸Þ½ÃÁö¿¡
°øÅëÀûÀ¸·Î Æ÷ÇԵǾî
ÀÖ´Â Çì´õ Çü½ÄÀÌ´Ù. À̰ÍÀº Àü¼ÛµÇ°í ÀÖ´Â ¸Þ½ÃÁö¿¡ °üÇÑ »çÇ×À» ¾Ë¸®´Â °ÍÀÌÁö,
Àü¼ÛµÇ°í ÀÖ´Â »ç¿ëÀÚ µ¥ÀÌŸ¿¡ °üÇÑ »çÇ×À» ¾Ë¸®´Â °ÍÀÌ ¾Æ´Ï´Ù.
Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²² ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ» ²ÒÇÒ ¶§ Ãß°¡µÉ
¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â general header field°¡ °¡Áø ¿ªÇÒ¿¡
ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â Entity-Header Çʵå·Î¼
°£ÁÖÇÑ´Ù.
À§ÀÇ Çì´õ Çü½ÄÀ» Ç®¾î¼ ´Ù½Ã »ìÆìº¸¸é ¾Æ·¡¿Í °°ÀÌ ³ªÅ¸³» º¸ÀÏ ¼ö ÀÖ´Ù.
Request-Header Çʵå´Â Full-Request ¸Þ½ÃÁö¿¡ Æ÷ÇԵǴ °ÍÀ̸ç,
¿ä±¸ »çÇ׿¡ ´ëÇÑ ¶Ç´Â Ŭ¶óÀÌ¾ðÆ® ÀÚü¿¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ ¼¹ö¿¡°Ô
Àü´ÞÇÒ ¶§ ¾²ÀδÙ.
Request-HeaderÀÇ Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²² ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ»
²ÒÇÒ ¶§ Ãß°¡µÉ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â request header field°¡
°¡Áø ¿ªÇÒ¿¡ ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â
Entity-Header Çʵå·Î¼ °£ÁÖÇÑ´Ù.
À̰ÍÀ» º¸´Ù »ó¼¼È÷ Ç®¾î¼ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
response header Çʵå´Â ¼¹ö°¡ ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³¾ ¶§ Status-Line¿¡´Ù
½ÇÀ» ¼ö ¾ø´Â Ãß°¡ÀûÀÎ Á¤º¸¸¦ Àü´ÞÇϰíÀÚ ÇÒ ¶§ ¾²ÀδÙ. ¼¹ö¸¦ À̰ÍÀ»
ÀÌ¿ëÇÏ¿© ¼¹ö Àڽſ¡ ´ëÇÑ Á¤º¸³ª Request-URI¿¡¼ ¸í½ÃÇÑ ÀÚ¿ø¿¡ ´ëÇÑ
Á¢±Ù ¹× ÀÌ¿ë ¹æ¹ý¿¡ ´ëÇÑ Á¤º¸¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°Àº Ç¥Çö½ÄÀ¸·Î
³ªÅ¸³½´Ù.
Response-HeaderÀÇ Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²²
ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ» ²ÒÇÒ ¶§ Ãß°¡µÉ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â
response header field°¡ °¡Áø ¿ªÇÒ¿¡ ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù.
ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â Entity-Header Çʵå·Î¼ °£ÁÖÇÑ´Ù.
À̰ÍÀ» º¸´Ù »ó¼¼È÷ Ç®¾î¼ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
Entity-Header Çʵå´Â Entity-Body¿¡ ´ëÇÑ ÀÎÄÚµù ¹æ½Ä, ÃÖÁ¾
¼öÁ¤ ÀÏÀÚ, À¯È¿ ±â°£,
¹®¼ ±æÀÌ µî°ú °°Àº ¿ÜÇüÀû Á¤º¸(metainformation)¸¦ ³ªÅ¸³¾ ¶§ ¾²À̰ųª,
Àü´ÞÇÒ entity body µ¥ÀÌŸ°¡ ¾øÀ» ¶§´Â ¿ä±¸ ¸Þ½ÃÁö¿¡¼ ÁöÁ¤ÇÑ ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ
Á¤º¸¸¦ ¾Ë·ÁÁÙ ¶§ ¾²ÀδÙ.
extension-header Çʵå´Â ÇÁ·ÎÅäÄÝÀ» ¼öÁ¤ÇÏÁö ¾Ê´õ¶óµµ
Ãß°¡ÀûÀÎ Entity-Header Çʵ带 Á¤ÀÇÇϵµ·Ï ¾²ÀÏ ¼ö ÀÖ´Ù.
±×·¯³ª ¼ö½ÅÃø¿¡¼ À̰ÍÀÌ Entity-HeaderÀÇ Àǹ̷μ
ÇØ¼®µÇ¾î¼´Â ¾È µÈ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â ¼ö½ÅÃøÀÌ ¹«½ÃÇϰųª
ÇÁ¶ô½Ã°¡ ´Ù¸¥ °÷À¸·Î Áß°èÇÏ¿©¾ß ÇÑ´Ù.
À̰ÍÀ» Ç®¾î¼ º¸´Ù »ó¼¼È÷ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
»ç¿ëÀÚÀÇ ¿ä±¸ »çÇ×À» ¹ÞÀº Ŭ¶óÀÌ¾ðÆ®°¡ HTTP ÇÁ·ÎÅäÄÝ¿¡ µû¶ó¼ ¼¹ö¿¡°Ô ¿ä±¸ »çÇ×À»
Àü´ÞÇÒ ¶§ Á¤ÀǵǾî ÀÖ´Â ¿ä±¸ ¸Þ½ÃÁö°¡ »ç¿ëµÈ´Ù. ÀÌ·¯ÇÑ ¿ä±¸ ¸Þ½ÃÁö´Â ÇÁ·ÎÅäÄÝÀÇ
¹öÀü¿¡ µû¶ó¼ µÎ °¡Áö Á¾·ù°¡ ÀÖÀ½À» ¾Õ¼ 4.1Àý¿¡¼ º¸¿´À¸¸ç
Simple-Request¿Í Full-Request°¡ ¹Ù·Î ±×°ÍÀÌ´Ù.
Full-Request ¸Þ½ÃÁöÀÇ ±¸¼º Çü½ÄÀ» ¾Õ¼ 4.1.2Àý¿¡¼ »ìÆìº¸¾ÒÀ¸¸ç, ÀÌ °¡¿îµ¥
General-HeaderÀÇ Çü½ÄÀº 4.3Àý¿¡¼ »ìÆìº¸¾Ò°í
Entity-Header´Â 7Àå¿¡¼ »ìÆìº¼ °ÍÀÌ´Ù.
¿©±â¼´Â Full-Request ¸Þ½ÃÁö¿Í °ü·ÃÇØ¼ ³ª¸ÓÁö Çì´õ¿Í Çü½ÄÀ» »ìÆìº¸±â·Î ÇÑ´Ù.
¿ä±¸ ¸Þ½ÃÁöÀÇ Ã¹ ¹øÂ° ÁÙ¿¡ ¿øÇÏ´Â ÇØ´ç ÀÚ¿ø¿¡ Àû¿ëÇÒ ÀÌ¿ë ¹æ¹ý, ÀÚ¿øÀÇ À§Ä¡¿Í
°°Àº Á¤º¸, ¹× »ç¿ëÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü µîÀÌ Æ÷ÇԵȴÙ. HTTP/0.9 ¹öÀüÀÇ
ÇÁ·ÎÅäÄݵµ Áö¿øÇϱâ À§ÇØ ¿ä±¸ ¸Þ½ÃÁö´Â Simple-Request¿Í Full-RequestÀÇ
µÎ °¡Áö Á¾·ù·Î¼ Ç¥½ÃµÈ´Ù.
¿ä±¸ ¸Þ½ÃÁöÀÇ Çü½ÄÀ» ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³» º¸ÀÏ ¼ö ÀÖ´Ù.
HTTP/1.0 ¼¹ö°¡ Simple-Request¸¦ ¼ö½ÅÇÑ´Ù¸é,
ÀÀ´äÀ» ÇÒ ¶§ ¹Ýµå½Ã HTTP/0.9 Çü½ÄÀÇ
Simple-Response Çü½ÄÀ¸·Î ÀÀ´äÇÏ¿©¾ß ÇÑ´Ù.
Full-Response¸¦ ¼ö½ÅÇÒ ¼ö ÀÖ´Â HTTP/1.0
Ŭ¶óÀÌ¾ðÆ®´Â Àý´ë Simple-Request¸¦ º¸³»Áö ¾Ê¾Æ¾ß ÇÑ´Ù.
¿ä±¸ ¸Þ½ÃÁö¿¡ µé¾î°¡´Â ù ¹øÂ° ÁÙÀÇ Ã¹ ¼ø¼ ³»¿ëÀÌ Request-LineÀÌ¸ç ¾Æ·¡¿Í °°Àº
±¸¼º Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Ù. Request-LineÀº ÀÚ¿øÀÇ ÀÌ¿ë ¹æ¹ýÀ» ³ªÅ¸³»´Â
method token, ÇØ´ç ÀÚ¿øÀ» °¡¸®Å°´Â Request-URI, ÇÁ·ÎÅäÄÝ ¹öÀü, ±×¸®°í ¸¶Áö¸·¿¡ CRLF·Î¼ Ç¥½ÃµÈ´Ù.
°¢°¢ÀÇ ÆÄ¶ó¹ÌÅ͵éÀº SP¿¡ ÀÇÇØ ±¸ºÐµÇ°í ÀÖ´Ù.
¸Þ½ÃÁö Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â CRLFÀº
¸¶Áö¸· ÀÌ¿ÜÀÇ Àå¼Ò¿¡´Â Çã¿ëµÇÁö ¾Ê´Â´Ù. ´Ù¸¸ »ç¿ëÀÚ Á¤º¸ µ¥ÀÌŸ¿Í °°Àº Entity
ºÎºÐÀº CRLF¿¡ µÚÀÌ¾î ³ªÅ¸³¯ ¼ö ÀÖ´Ù.
µû¶ó¼ ½ÇÁ¦ »ç¿ëÀÚ µ¥ÀÌŸ¸¦ º¸³»±â À§Çؼ´Â
¸Þ½ÃÁö Á¤º¸ ´ÙÀ½¿¡ °ø¹éÀÇ ºóÁÙÀ» ¹Ýµå½Ã Áý¾î ³Ö¾î¾ß ÀνÄÇÒ ¼ö ÀÖ´Ù.
º¸´Ù »ó¼¼ÇÏ°Ô Ç®¾î¼ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
Simple-Request¿Í Full-Request ¼Ó¿¡ ÀÖ´Â
Request-LineÀÇ Â÷ÀÌÁ¡Àº HTTP-Version ÇʵåÀÇ Á¸Àç À¯¹«¿Í
GET ÀÌ¿ÜÀÇ ´Ù¸¥ ¹æ¹ýÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´ÂÁö ¾ø´ÂÁö ÇÏ´Â °ÍÀÌ´Ù.
Request-URI·Î ÁöÁ¤µÇ´Â ´ë»óü¿¡ ´ëÇØ ¾î¶»°Ô Ȱ¿ëÇÒ °ÍÀÎÁö
±× ÀÌ¿ë ¹æ¹ýÀ» ÁöÁ¤ÇÑ´Ù. ¿¹¸¦ µé¾î GETÀ̶õ method·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸é
Request-URI·Î ÁöÁ¤µÇ¾î ÀÖ´Â µ¥ÀÌŸ ÈÀÏÀ» °¡Áö°í ¿À¶ó´Â ¶æÀÌ µÇ¸ç,
POST¶õ method·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸é Request-URI·Î ÁöÁ¤µÇ¾î ÀÖ´Â
Àå¼Ò¿¡ ±ÛÀ» ¿Ã¸± ¼ö ÀÖ´Ù. ÇöÀç ¼¼ °¡Áö Á¾·ù°¡
Á¤ÀÇµÇ¾î ¾²À̰í ÀÖÀ¸¸ç ´ÙÀ½°ú °°´Ù. method´Â ´ë¼Ò¹®ÀÚ °¡¸®Áö ¾Ê´Â´Ù.
GET, HEAD, POST¶ó°í ÇÏ´Â ¼¼ °¡Áö method¿¡ ´ëÇÑ
¼³¸íÀº 8Àå¿¡¼ ÀÌ·ç¾îÁú °ÍÀÌ´Ù.
´ÙÀ½°ú °°Àº Ç¥½Ã Çü½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ ´ë»ó ÀÚ¿ø¿¡ ´ëÇØ ¿äûÇÑ method ¿äûÀÌ ¼¹ö¿¡¼ ó¸®ÇÒ ¼ö ¾ø´Â
°ÍÀ̶ó¸é ¼¹ö´Â 501 (not implemented) »óÅ Á¤º¸¸¦ µÇµ¹·Á ÁØ´Ù.
¿ä±¸ ¸Þ½ÃÁö¿¡ ÀÖ´Â method¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â µ¿ÀÛÀ» ¾î´À Àå¼Ò¿¡ ÀÖ´Â ´ë»ó¿¡°Ô
Àû¿ëÇÒ °ÍÀÎÁö ³ªÅ¸³½´Ù. ÀÌ·¸°Ô Ç¥½ÃµÇ´Â URI´Â ´Ù¾çÇÑ Á¤º¸¸¦ ÇÔÃàÇϰí ÀÖÀ¸¸ç
3.2ÀýÀ» ÂüÁ¶ÇÏ¸é µÈ´Ù. ´ÙÀ½°ú °°Àº Ç¥½Ã Çü½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
absoluteURI Çü½ÄÀº ¿ä±¸ ¸Þ½ÃÁö°¡ ÇÁ¶ô½Ã ¼¹ö·Î Àü´ÞµÉ ¶§¿¡¸¸ ¾²ÀδÙ.
ÇÁ¶ô½Ã´Â ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ Áß°èÇϰí Àü´Þ¹ÞÀº ÀÀ´ä ¸Þ½ÃÁö¸¦ ÃÖÃÊ ¿ä±¸ÇÑ
Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇÑ´Ù. ¿ä±¸ ¸Þ½ÃÁö°¡ GET ¶Ç´Â HEADÀ̰í
ÇØ´ç ¿ä±¸¿¡ ´ëÇÑ ÀÌÀü ÀÀ´äÀÌ ÀÌ¹Ì Ä³½ÃµÇ¾î ÀÖ´Ù¸é Expires Á¦ÇÑ
Á¶°Ç¿¡ À§¹èµÇÁö ¾Ê´Â ÇÑ
ÀÌ¹Ì Ä³½ÃµÇ¾î ÀÖ´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ ±×´ë·Î Àü´ÞÇÑ´Ù. ¿©±â¼ Expires´Â
ij½ÃµÇ¾î ÀÖ´Â Á¤º¸¿¡ ´ëÇÑ À¯È¿ ±â°£À» ÁöÁ¤ÇÑ °ÍÀÌ´Ù.
ÇÁ¶ô½Ã´Â ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ ´Ù¸¥ ÇÁ¶ô½Ã·Î Áß°èÇÒ ¼öµµ ÀÖÀ¸¸ç, ¶Ç´Â
absoluteURI¿¡¼ ÁöÁ¤ÇÑ ¼¹ö·Î °ð¹Ù·Î Áß°èÇØÁÙ ¼öµµ ÀÖ´Ù. À̶§ ¿ä±¸
¸Þ½ÃÁöÀÇ ·çÇÎ(looping)À» ¹æÁöÇϱâ À§ÇØ ÇÁ¶ô½Ã´Â ÀÚ½ÅÀÇ ¸ðµç ¼¹ö À̸§°ú
IP ÁÖ¼Ò¸¦ ÀνÄÇϰí ÀÖ¾î¾ß Çϸç, À̶§ÀÇ ¼¹ö À̸§¿¡´Â alias À̸§À̳ª
È£½ºÆ® ³»ºÎ¿¡ ¼³Á¤µÇ¾î ÀÖ´Â º°¸í±îÁöµµ Æ÷ÇԵȴÙ.
ÇÑ °¡Áö ¿¹´Â ´ÙÀ½°ú °°´Ù.
Request-URIÀÇ °¡Àå ÀϹÝÀûÀÎ ÇüÅ´ ÇÁ¶ô½Ã ¼¹ö°¡ ¾Æ´Ñ È£½ºÆ® ¼¹ö¿¡
ÀÖ´Â ÀÚ¿øÀ» ÁöÁ¤ÇÒ ¶§ ¾²ÀÌ´Â °ÍÀ̸ç, ÀÌ °æ¿ì¿¡´Â URIÀÇ Àý´ë °æ·Î
(absolute path) ¸¸ÀÌ Àü´ÞµÈ´Ù. (5.1ÀýÀÇ »ó¼¼ Ç¥Çö½Ä¿¡¼ abs_path ÂüÁ¶.)
¿¹¸¦ µé¾î, È£½ºÆ® ¼¹ö·ÎºÎÅÍ À§¿¡ ¸í½ÃÇÑ ¹®¼¸¦ Ŭ¶óÀÌ¾ðÆ®°¡ Á÷Á¢
°¡Á®¿À°íÀÚ ÇÏ´Â °æ¿ì, www.w3.org È£½ºÆ®¿¡ 80¹ø Æ÷Æ®·Î TCP ¿¬°áÀ»
¸Î¾î ´ÙÀ½°ú °°Àº ³»¿ëÀ» º¸³½´Ù.
À§¿¡ ÀÌ¾î¼ Full-RequestÀÇ ³ª¸ÓÁö ºÎºÐÀÌ µÚµû¸¥´Ù. ¿©±â¼ Àý´ë °æ·Î´Â
Àý´ë »ý·«µÉ ¼ö ¾ø´Ù. µû¶ó¼ ¸¸¾à¿¡ ¿ø·¡ URI¿¡ ¾Æ¹« °Íµµ ÁöÁ¤µÇ¾î
ÀÖÁö ¾Ê´Ù¸é Request-URI¿¡ "/" ÀÌ Ç¥½Ã°¡ µé¾î°¡¾ß ÇÑ´Ù.
¿¹¸¦ µé¾î ´ÙÀ½°ú °°´Ù.
´Ù½Ã ¸»ÇØ, »ç¿ëÀÚ°¡ ºê¶ó¿ìÀú¿¡ http://www.w3.org ¿Í °°Àº URLÀ»
ÁöÁ¤ÇÏ¿© Àý´ë °æ·Î Ç¥½Ã°¡ µÇ¾î ÀÖÁö ¾ÊÀ» ¶§ À§¿Í °°Àº °úÁ¤À» °ÅÄ¡´Â °ÍÀÌ´Ù.
¸¸¾à http://www.w3.org/ ÀÌ¿Í °°Àº URLÀ» ÁöÁ¤ÇßÀ» ¶§´Â Àý´ë °æ·Î°¡
"/"·Î¼ ÀÌ¹Ì Ç¥½ÃµÇ¾î ÀÖÀ¸¹Ç·Î ´ç¿¬È÷ À§¿Í °°Àº Ç¥Çö½ÄÀÌ µÈ´Ù.
Áï, °á°úÀûÀ¸·Î´Â
µÎ °¡Áö °æ¿ì¿¡ ´ëÇÑ Request-URI Ç¥Çö½ÄÀÌ ¶È °°´Ù.
Request-URI°¡ Àü¼ÛµÉ ¶§´Â ÀÎÄÚµùµÇ¾î Àü´ÞµÈ´Ù. ¿©±â¼ ¸î °¡Áö ±ÛÀÚ´Â
RFC 1738¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â "%HEX HEX" ÀÎÄÚµù ¹æ½ÄÀ¸·Î º¯È¯µÉ ¼ö ÀÖ´Ù.
¼ö½ÅÇÏ´Â ¼¹ö´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀûÀýÈ÷ ó¸®Çϱâ À§ÇÏ¿© ÀÎÄÚµùµÇ¾î ÀÖ´Â
Request-URI¸¦ µðÄÚµùÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
4.2.2ÀýÀ» ÂüÁ¶ÇÏ¸é µÈ´Ù.
¼¹ö´Â ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ HTTP ÇÁ·ÎÅäÄÝ¿¡ ¸Â°Ô ¹ø¿ªÇÏ¿© ÀûÀýÇÑ µ¿ÀÛÀ» ¼öÇàÇϰí
ÇÁ·ÎÅäÄÝÀÇ ÀÀ´ä ¸Þ½ÃÁö Çü½Ä¿¡ ¸ÂÃç °á°ú¸¦ Àü´ÞÇÑ´Ù. ¿ä±¸ ¸Þ½ÃÁöÀÇ Çü½ÄÀ» ´ÙÀ½°ú
°°ÀÌ ³ªÅ¸³» º¸ÀÏ ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ ÀÀ´ä ¸Þ½ÃÁö´Â ÇÁ·ÎÅäÄÝÀÇ ¹öÀü¿¡ µû¶ó¼ µÎ °¡Áö Á¾·ù°¡ ÀÖÀ½À» 4.1Àý¿¡¼
º¸¿´À¸¸ç Simple-Response¿Í Full-Response°¡ ±×°ÍÀÌ´Ù.
Simple-Response´Â HTTP/0.9 ÇÁ·ÎÅäÄÝ Çü½ÄÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´ä
¶Ç´Â ¼¹ö°¡ HTTP/0.9 ÇÁ·ÎÅäÄÝ·Î Á¦ÇÑÀûÀ¸·Î ¾²ÀÏ ¶§ÀÇ ÀÀ´äÀ¸·Î¸¸ »ç¿ëµÇ¾î¾ß ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ HTTP/1.0 Çü½ÄÀÇ Full-Request¸¦ º¸³Â´Âµ¥ ¼ö½ÅÇÑ ÀÀ´äÀÌ
Status-LineÀ¸·Î ½ÃÀÛÇÏÁö ¾Ê´Â´Ù¸é, ¼ö½ÅÇÑ ÀÀ´äÀÌ
Simple-Request¶ó°í °£ÁÖÇϰí ÀûÀýÇÏ°Ô ÆÄ½Ì(parsing) 󸮸¦ Çϵµ·Ï ÇÑ´Ù.
Full-ResponseÀÇ °¢ Çì´õ ÇʵåµéÀº 4.2Àý¿¡¼ ÀÌ¹Ì »ìÆìº¸¾Ò´Ù.
Full-Response ¸Þ½ÃÁö¿¡ µé¾î°¡´Â ù ¹øÂ° ÁÙÀÇ ³»¿ëÀÌ
Status-LineÀÌ¸ç ¾Æ·¡¿Í °°Àº
±¸¼º Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Ù. °¢°¢ÀÇ ÆÄ¶ó¹ÌÅ͵éÀº SP¿¡ ÀÇÇØ ±¸ºÐµÇ°í ÀÖÀ¸¸ç,
HTTP ¹öÀüÀÌ Á¦ÀÏ ¸ÕÀú ³ª¿À°í ÀÌ¾î¼ ¼ýÀÚ·Î µÈ »óÅ Äڵ尡 Ç¥½ÃµÇ°í À̾î¼
°ü·ÃµÈ Ãß°¡ÀûÀÎ ³»¿ë ¼³¸íÀÌ µ¡ºÙ¿©Áø´Ù. ¸Þ½ÃÁö Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â
CRLF´Â
¸¶Áö¸· ÀÌ¿ÜÀÇ Àå¼Ò¿¡´Â Çã¿ëµÇÁö ¾Ê´Â´Ù. ´Ù¸¸ »ç¿ëÀÚ µ¥ÀÌŸ¿Í °°Àº Entity
ºÎºÐÀº CRLF¿¡ µÚÀÌ¾î ³ªÅ¸³¯ ¼ö ÀÖ´Ù. µû¶ó¼ ½ÇÁ¦ »ç¿ëÀÚ
µ¥ÀÌŸ¸¦ º¸³»±â À§Çؼ´Â ¸Þ½ÃÁö Á¤º¸ ´ÙÀ½¿¡ °ø¹éÀÇ ºóÁÙÀ» ¹Ýµå½Ã Áý¾î³Ö¾î¾ß
ÀνÄÇÒ ¼ö ÀÖ´Ù.
º¸´Ù »ó¼¼ÇÏ°Ô Ç®¾î¼ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
¼¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÏ¿© ó¸®ÇÑ °á°ú¸¦ ¾Ë·ÁÁÖ´Â ¼¼ ÀÚ¸®ÀÇ Á¤¼ö·Î Ç¥ÇöµÇ´Â
ó¸® °á°ú ¹øÈ£ÀÌ´Ù. Reason-Phrase¿¡´Â Status-Code¿¡ ´ëÇÑ
©¸·ÇÑ ¼³¸í¹®ÀÌ µé¾î°¥ ¼ö ÀÖ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â Reason-Phrase¸¦ ¹Ýµå½Ã
Á¡°ËÇϰųª ȸ鿡
º¸ÀÌ°Ô ÇÒ ÇÊ¿ä´Â ¾ø´Ù.
ù ¹øÂ° ÀÚ¸® ¼ýÀÚ´Â ÀÀ´äÀÇ ºÐ·ù ±âÈ£ÀÌ¸ç ³ª¸ÓÁö µÎ ÀÚ¸® ¼ýÀÚ´Â ÀϷùøÈ£ÀÌ´Ù.
ÇöÀç ù ¹øÂ° ÀÚ¸® ¼ýÀÚ¿¡ ÀÇÇØ ´Ù¼¸ °¡Áö·Î ºÐ·ùµÇ¾î ¾²À̰í ÀÖ´Ù.
HTTP/1.0¿¡¼ Á¤ÀÇÇÑ »óÅ ÄÚµå¿Í ´ëÀÀÇÏ´Â Reason-Phrase ¼³¸í¹®À» ¾Æ·¡ÀÇ ¿¹¿¡¼
º¼ ¼ö ÀÖ´Ù. ¿©±â¼ÀÇ ¼³¸í¹®Àº ´ÜÁö ±ÇÀå »çÇ×ÀÏ »ÓÀ̸ç, °°Àº Àǹ̿¡ ÀÖ¾î
´Ù¸¥ ±Û·Î¼ Ç¥ÇöÇØµµ µÈ´Ù.
À§¿¡¼ Ç¥½ÃÇÑ Status-Code¿¡ ´ëÇØ »ó¼¼ ¼³¸íÀ» À§ÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ Á¦°øÇϰíÀÚ
ÇÒ ¶§ Reason-Phrase¿¡ Æ÷ÇԵǾî Àü´ÞµÈ´Ù. À§ 6.1.1À» ÂüÁ¶ÇÏ¸é µÈ´Ù.
Full-Request¿Í Full-Response ¸Þ½ÃÁö´Â °¢ ¸Þ½ÃÁö ³»¿¡ ¹®¼³ª
»ç¿ëÀÚ µ¥ÀÌŸ¿Í °°Àº
¿£ÅÍÆ¼ ¿ä¼Ò¸¦ Àü¼ÛÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ¿£ÅÍÆ¼´Â Entity-Header Çʵå¿Í
Entity-Body Çʵå·Î¼ ±¸¼ºµÈ´Ù.
7ÀåÀÇ ¼³¸í¿¡ ÀÖ¾î¼ Å¬¶óÀÌ¾ðÆ®¿Í ¼¹ö´Â ¿£ÅÍÆ¼ ¿ä¼Ò¸¦
Àü¼ÛÇÏ´À³Ä ¼ö½ÅÇÏ´À³Ä¿¡ µû¶ó °¢°¢ ¼Û½ÅÀÚ ¶Ç´Â ¼ö½ÅÀÚ°¡ µÉ ¼ö ÀÖ´Ù.
4.2.4Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
HTTP ¿ä±¸ ¶Ç´Â ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî Àü´ÞµÇ´Â entity body´Â
Entity-Header Çʵ忡 ÀÇÇØ Á¤ÀǵǴ Çü½Ä°ú ÀÎÄÚµù ¹æ½ÄÀ¸·Î
±¸¼ºµÇ¾î Àü´ÞµÈ´Ù. Entity-Body´Â ´ÙÀ½°ú °°Àº ´Ü¼øÇÑ Çü½ÄÀÌ´Ù.
¿ä±¸ ¸Þ½ÃÁö¿¡ entity body°¡ Á¸ÀçÇÑ´Ù´Â °ÍÀº ¿ä±¸ ¸Þ½ÃÁö Çì´õÀÇ
Content-Length ÇʵåÀÇ Á¸À縦 º¸°í¼µµ ¾Ë ¼ö ÀÖ´Ù. Áï,
entity body¸¦ Æ÷ÇÔÇÏ´Â HTTP/1.0
¿ä±¸ ¸Þ½ÃÁö´Â ¹Ýµå½Ã Content-Length Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß
ÇÑ´Ù´Â ¶æÀ̱⵵ ÇÏ´Ù.
entity body°¡ ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷ÇÔµÉÁö ¾È µÉÁö´Â ¿ä±¸ ¸Þ½ÃÁö¿Í ÀÌ¿¡ ´ëÇÑ °á°ú
Äڵ忡 ÀÇÇØ Á¿ìµÈ´Ù. HEAD method°¡ ÁöÁ¤µÈ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ¸ðµç ÀÀ´ä¿¡´Â
entity body°¡ Æ÷ÇԵǾ ¾È µÈ´Ù. ±×¸®°í 1xx(informational), 204(no content),
304(not modified) ÀÀ´ä¿¡µµ entity body°¡ Æ÷ÇԵǾ ¾È µÈ´Ù. ÀÌ¿ÜÀÇ ´Ù¸¥
¸ðµç ÀÀ´ä¿¡´Â entity body°¡ Æ÷ÇԵǰųª Content-Length Çì´õ Çʵ忡 '0'ÀÇ °ªÀÌ
µé¾î°¡¾ß ÇÑ´Ù.
HTTP/1.0 ÇÁ·ÎÅäÄÝ¿¡´Â ¿ä±¸ ¸Þ½ÃÁöÀÇ È°¿ë ¹æ¹ý¿¡ ´ëÇÑ Ç¥½Ã¸¦ Çϵµ·Ï µÇ¾î Àִµ¥,
À̰ÍÀÌ method¶ó°í ÇÏ´Â °ÍÀÌ´Ù. Áï, ÁöÁ¤ÇÑ Request-URI¿¡ ´ëÇØ º¸³»´Þ¶ó°í Àü¼Û
¿äû (GET) ÇÒÁö, ¼¹ö¿¡ Àü´ÞÇϰíÀÚ (POST) ÇÒÁö, ÇØ´ç ¹®¼ÀÇ Çìµå Á¤º¸ (HEAD)
¸¸À» Àü¼Û ¿äû ÇÒÁö, ÀÌ¿¡ ´ëÇÑ È°¿ë ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù.
À§ ¼¼ °¡Áö method Á¾·ù À̿ܿ¡ Ãß°¡ÇÒ ¼öµµ ÀÖÁö¸¸, Ãß°¡ÀûÀÎ ±â´É ±¸ÇöÀÇ
Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö¸¦ À§ÇØ °°Àº ¿ªÇÒÀ» ÇÏ´Â ´Ù¸¥ À̸§ÀÇ method¸¦ ¸¸µé ¼ö´Â ¾ø´Ù.
GET method´Â Request-URI¿¡¼ ÁöÁ¤ÇÑ ¾î¶² Á¤º¸À̵çÁö
entity body·Î¼ Àü´ÞÇØ ´Þ¶ó°í
¿äûÇÏ´Â Àǹ̷μ ¾²ÀδÙ. Request-URI°¡ ¾î¶² ½ÇÇà ÇÁ·Î±×·¥À» ¸í½ÃÇÏ´Â
°æ¿ì¿¡´Â ½ÇÇà ÇÁ·Î±×·¥ ÀÚü°¡ Àü´ÞµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ½ÇÇàµÈ °á°ú°¡ ÀÀ´ä ¸Þ½ÃÁöÀÇ entity
body·Î¼ Àü´ÞµÈ´Ù.
¿ä±¸ ¸Þ½ÃÁö¿¡ If-Modified-Since Çì´õ Çʵ尡 Æ÷ÇԵǾî ÀÖ´Ù¸é
GETÀº Á¶°ÇºÎ GETÀ¸·Îµµ µ¿ÀÛÇÒ ¼ö ÀÖ´Ù.
ÀÌ °æ¿ìÀÇ GETÀÌ °¡Áö´Â Àǹ̴Â, ÁöÁ¤µÈ ÀÚ¿øÀÌ If-Modified-Since¿¡
ÀÇÇØ ÁöÁ¤µÈ ÀÏÀÚ ÀÌÈÄ¿¡ ¼öÁ¤µÈ °ÍÀÏ °æ¿ì¿¡¸¸ Àü¼ÛÇ϶ó´Â °ÍÀÌ´Ù. ÀÌ Á¶°ÇÀ» ÀÌ¿ëÇÏ¿©
ºÒÇÊ¿äÇÑ µ¥ÀÌŸ Àü¼ÛÀ» ¸·À» ¼ö ÀÖ°í ÀÌ¹Ì Ä³½ÃµÇ¾î ÀÖ´Â µ¥ÀÌŸ¸¦ »ç¿ëÀÚ¿¡°Ô
Àü´ÞÇØÁÜÀ¸·Î½á ³×Æ®¿öÅ©ÀÇ È°¿ë¼ºÀ» ³ôÀÏ ¼ö ÀÖ´Ù.
HEAD method´Â, ÀÀ´ä ¸Þ½ÃÁöÀÇ Entity-Body¿¡ ¾î¶² ³»¿ëµµ ½Ç¾î
º¸³»¼´Â ¾È µÈ´Ù´Â Á¡À»
Á¦¿ÜÇϰí´Â GET method¿Í ¶È°°´Ù. HEAD ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î
HTTP Çì´õ¿¡
Æ÷ÇԵǴ µ¥ÀÌŸ ÇüÅ Á¤º¸´Â (metainformation, 4.2.4 ÂüÁ¶) GET ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î
Àü´ÞµÇ´Â Á¤º¸¿Í µ¿ÀÏÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ HEAD method´Â
Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â
ÀÚ¿ø¿¡ ´ëÇØ Entity-Body¿¡ ½ÇÁ¦ ³»¿ëÀ» ½Ç¾î¼ Àü´ÞÇÏÁö ¾Ê´õ¶óµµ ÀÚ¿ø¿¡ ´ëÇÑ
¿ÜÇü Á¤º¸ (metainformation) ȹµæÀ» À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̰ÍÀ» Ȱ¿ëÇÏ¿© ÀÚ¿ø¿¡ ´ëÇÑ À¯È¿¼º,
Á¢±Ù¼º, ÃÖ±Ù ¼öÁ¤ Á¤º¸ µî¿¡ ´ëÇÑ °Ë»ç¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù.
¿©±â¼ Á¶°ÇºÎ GET°ú ºñ½ÁÇÏ°Ô Á¶°ÇºÎ HEAD·Î¼ µ¿ÀÛÇÏ´Â
¿ä±¸ ¸Þ½ÃÁö´Â ¾ø´Ù. µû¶ó¼
If-Modified-Since Çì´õ Çʵ尡 HEAD ¿ä±¸ ¸Þ½ÃÁö¿¡
Æ÷ÇÔµÈ´Ù¸é ¹«½ÃÇϵµ·Ï ÇØ¾ß ÇÑ´Ù.
POST ¿ä±¸ ¸Þ½ÃÁö´Â ¸Þ½ÃÁöÀÇ entity body¿¡ Æ÷ÇԵǾî ÀÖ´Â ÀÚ¿øÀ»
Request-Line¿¡ ÀÖ´Â Request-URI¿¡¼ ÁöÁ¤ÇÏ´Â ´ë·Î
¼¹ö¿¡¼ ¼ö¿ëÇØ´Þ¶ó°í ¿äûÇÒ ¶§ ¾²ÀδÙ. Áï, POST´Â
´ÙÀ½°ú °°Àº ±â´ÉÀ» ¼öÇàÇϱâ À§ÇÑ ÇÑ °¡Áö ¹æ¹ýÀ¸·Î ¼³°èµÇ¾ú´Ù.
POST method¿¡ ÀÇÇØ ¼öÇàµÇ´Â ½ÇÁ¦ µ¿ÀÛÀº ¼¹ö¿¡ ÀÇÇØ °áÁ¤µÇ°í Åë»ó
Request-URI¿¡ ÀÇÇØ Á¿ìµÈ´Ù. Æ÷½ºÆÃµÇ´Â ´ë»óÀº, ÇϳªÀÇ ÈÀÏÀÌ
¾î´À µð·ºÅ丮¿¡ ÀÚ¸®ÇÏ°Ô µÇ°í
´º½º ±ÛÀÌ Æ÷½ºÆÃµÇ´Â ´º½º±×·ì¿¡ ¿Ã·ÁÁö°í ·¹Äڵ尡 µ¥ÀÌŸ º£À̽º°¡ µî·ÏµÇ´Â µî°ú
¶È°°Àº ¹æ½ÄÀ¸·Î ÁöÁ¤µÈ URI¿¡ ³õÀÌ°Ô µÈ´Ù.
POST´Â ´ë»ó ¼¹ö¿¡ ÇϳªÀÇ ÀÚ¿øÀ¸·Î¼ »ý¼ºµÉ Çʿ䰡 ¾ø°í ÃßÈÄÀÇ ÂüÁ¶¸¦ À§ÇØ Á¢±Ù
°¡´ÉÇØ¾ß ÇÒ Çʿ䵵 ¾ø´Ù. Áï, POST method¿¡ ÀÇÇØ ¼öÇàµÇ´Â µ¿ÀÛÀº Æ÷½ºÆÃ µÇ´Â
entity°¡
URI¿¡ ÀÇÇØ ÁöÁ¤µÉ ¼ö ÀÖ´Â ÀÚ¿øÀÌ ¾Æ´Ï¾îµµ µÈ´Ù´Â °ÍÀÌ´Ù. ÀÌ °æ¿ìÀÇ ÀûÀýÇÑ ÀÀ´ä °á°ú
ÄÚµå´Â 200 (ok) ¶Ç´Â 204 (no content)°¡ µÉ °ÍÀε¥, ÀÀ´ä ¸Þ½ÃÁö¿¡ entity°¡
Æ÷ÇԵǾî ÀÖ´À³Ä ÀÖÁö ¾Ê´À³Ä¿¡ µû¶ó ±¸ºÐÀÌ µÉ °ÍÀÌ´Ù.
¾î¶² ÀÚ¿øÀÌ ´ë»ó ¼¹ö¿¡ »ý¼ºµÇ´Â °æ¿ì¶ó¸é ÀÀ´ä °á°ú ÄÚµå´Â 201(created)ÀÌ µÇ¾î¾ß
ÇÏ°í »óÅ Á¤º¸³ª »ý¼ºµÈ »õ ÀÚ¿ø¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÖ´Â entity°¡ Æ÷ÇԵǾî ÀÖ¾î¾ß
ÇÑ´Ù.
HTTP/1.0ÀÇ ¸ðµç POST ¿ä±¸ ¸Þ½ÃÁö¿¡´Â Content-Length°¡ ¹Ýµå½Ã
ÀÖ¾î¾ß Çϸç, ¼¹ö°¡
ÀÌ¿¡ ´ëÇÑ Á¤º¸¸¦ È®º¸ÇÏÁö ¸øÇÏ°Ô µÇ¸é 400(bad request) ¸Þ½ÃÁö¸¦ ÀÀ´äÇØ¾ß ÇÑ´Ù.
ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â POST ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ» ij½ÌÇÒ Çʿ䰡 ¾ø´Ù.
¿Ö³ÄÇϸé
¼¹ö°¡ ÃßÈÄÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î¼ ¶È°°Àº ÀÀ´äÀ» ÇÒ °ÍÀÎÁö ¾Ë ¼ö°¡
¾ø±â ¶§¹®ÀÌ´Ù.
»óÅ Äڵ忡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ Á¸ÀçÇÑ´Ù. (6.1.1Àý ÂüÁ¶)
ÀÌ Àå¿¡¼´Â HTTP/1.0 ÇÁ·ÎÅäÄÝÀÇ Çì´õ ÇʵåµéÀÇ Á¤ÀÇ¿¡ ´ëÇÑ Ç¥Çö Çü½Ä°ú
Á¤ÀÇ¿¡ ´ëÇÑ ³»¿ëÀ» ´Ù·é´Ù.
Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ´ë»óü¿¡ ´ëÇØ Àû¿ëÇÒ methodsµéÀ» ³ª¿Çϰí ÀÖ´Ù.
À̰ÍÀº ÁöÁ¤µÈ ¹®¼¿¡ ´ëÇØ Àû¿ëÇÒ methodÀÇ Á¾·ùµéÀ» ¼ö½ÅÃø¿¡°Ô ¾Ë·ÁÁÖ±â
À§ÇØ »ç¿ëµÈ´Ù. POST method¸¦ »ç¿ëÇÏ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡´Â Allow Çʵ尡
Çã¿ëµÇÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î Æ÷ÇԵǾî ÀÖ´Ù¸é ¹«½ÃÇÏ¿©¾ß ÇÑ´Ù.
´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô ¼ºñ½º ¿äûÀ» ÇÒ ¶§ ÀÚ½ÅÀÇ ½ÅºÐÀ» ¹àÈ÷°í ÀÎÁ¤¹Þ´Â µ¿ÀÛÀ» À§ÇØ
»ç¿ëµÇ´Â ÇʵåÀÌ´Ù. 401 Unauthorized ÀÀ´äÀ» ¼ö½ÅÇÑ ÀÌÈĶó¸é ¹Ýµå½Ã ÀÌ Çʵ带
»ç¿ëÇÒ ÇÊ¿ä´Â ¾ø´Ù. Authorization Çʵå´Â ´ë»ó ÀÚ¿ø¿¡ ´ëÇÑ
user agentÀÇ ÀÎÁõ Á¤º¸¸¦
Æ÷ÇÔÇÏ´Â credentials Á¤º¸·Î ±¸¼ºÇÑ´Ù.
À̰ÍÀ» º¸´Ù »ó¼¼È÷ ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
Entity Çì´õÀÇ Content-Encoding Çʵå´Â Àü¼Û ´ë»óÀÌ µÇ´Â °³Ã¼°¡ ÁöÁ¤µÈ
media-type¿¡
´ëÇØ ¾î¶² ¹æ½ÄÀ¸·Î º¯È¯µÇ¾î ÀÖ´ÂÁö ³ªÅ¸³½´Ù. (modifier to the media-type)
µû¶ó¼ ¼ö½ÅÃøÀÇ ÀÔÀå¿¡¼ º¼ ¶§´Â Content-Type Çì´õ Çʵ忡 ÁöÁ¤µÇ¾î ÀÖ´Â µ¥ÀÌŸ
Çü½ÄÀ¸·Î ¿ø»ó º¹±¸Çϱâ À§ÇØ ¾î¶² µðÄÚµù ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ¾ß ÇÒÁö °áÁ¤ÇÏ´Â ¿ªÇÒÀ»
Content-Encoding Çʵ尡 ÇÏ°Ô µÈ´Ù. À̰ÍÀº ÁÖ·Î ½ÇÁ¦ µ¥ÀÌŸ¿¡ ´ëÇÑ º¯Áú ¾øÀÌ
µ¥ÀÌŸ ¾ÐÃàÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ »ç¿ëµÈ´Ù.
content-codingÀÇ ³»¿ëÀº 3.2.5Àý¿¡¼ »ìÆìº¼ ¼ö ÀÖÀ¸¸ç,
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
°á±¹ Content-EncodingÀº Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ´ë»ó
ÀÚ¿øÀÇ µ¥ÀÌŸ ¼Ó¼ºÀ»
³ªÅ¸³»´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î ´ë»ó ÀÚ¿øÀÌ ÀÎÄÚµùµÇ¾î ÀúÀåµÇ¾î ÀÖÀ» ¶§ ¼ö½ÅÃø¿¡¼
À̰ÍÀ» Ȱ¿ëÇϱ⿡ ¾Õ¼ µðÄÚµùÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
Entity Çì´õÀÇ Content-Length Çʵå´Â Entity-BodyÀÇ Å©±â¸¦
¹ÙÀÌÆ® ´ÜÀ§·Î Ç¥½ÃÇÏ¿©
¼ö½ÅÃø¿¡°Ô ¾Ë·ÁÁÖ´Â ¿ëµµ·Î½á ¾²ÀδÙ.
¿ä±¸ ¸Þ½ÃÁöÀÇ method°¡ GETÀ̶ó¸é
Àü¼ÛÇÏ´Â µ¥ÀÌŸÀÇ ½ÇÁ¦ Å©±â¶õ Àǹ̷μ Àü´ÞµÇÁö¸¸, HEAD¶ó¸é Àü¼ÛµÇ¾î¾ß ÇÏ´Â
µ¥ÀÌŸÀÇ Å©±â°¡ ¾î´À Á¤µµÀÎÁö ÀǹÌÇÏ´Â °ÍÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â ÀÌ ÇʵåÀÇ °ªÀ» media-type¿¡ ¹«°üÇϰÔ
Entity-BodyÀÇ
Àü¼Û Å©±â·Î¼ ÀνÄÇÏ¿©¾ß ÇÑ´Ù. Content-Length´Â Àü¼ÛÇÒ entity body¸¦ °¡Áø
¸ðµç HTTP ¿ä±¸ ¸Þ½ÃÁö¿¡ ÀÖ¾î¾ß Çϸç, 0 ¶Ç´Â À̺¸´Ù Å« °ªÀ̾î¾ß ÇÑ´Ù.
Content-Length °ªÀÌ ¾øÀ» ¶§ ÀÀ´ä ¸Þ½ÃÁöÀÇ entity bodyÀÇ ±æÀ̸¦ °áÁ¤ÇÏ´Â
¹æ¹ýÀº 7.2.2Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
Entity Çì´õÀÇ Content-Type Çʵå´Â ¼ö½ÅÃø¿¡°Ô Àü´ÞÇÏ´Â
Entity-BodyÀÇ µ¥ÀÌŸ Çü½ÄÀ»
Ç¥½ÃÇÑ´Ù. ¿ä±¸ ¸Þ½ÃÁöÀÇ method°¡
GETÀ̶ó¸é Àü¼ÛÇÏ´Â µ¥ÀÌŸÀÇ Çü½ÄÀ̶õ Àǹ̷μ Àü´ÞµÇÁö¸¸,
HEAD¶ó¸é Àü¼ÛµÇ¾î¾ß
ÇÏ´Â µ¥ÀÌŸÀÇ Çü½ÄÀÌ ¾î¶² °ÍÀÎÁö Ç¥½ÃÇÏ´Â ÀǹÌÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
media-type¿¡ ´ëÇÑ ¼³¸íÀº 3.2.6Àý¿¡ ÀÖ´Ù.
¸Þ½ÃÁö°¡ ¸¸µé¾îÁö´Â ³¯Â¥¿Í ½Ã°£À» ³ªÅ¸³¾ ¶§ ¾²À̸ç, RFC 822¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â
orig-date¿Í °°Àº ÀǹÌÀÌ´Ù. ÀÌ Çʵå´Â 3.2.3Àý¿¡¼ ¼³¸íÇÏ´Â °Í°ú °°ÀÌ
HTTP-date·Î Ç¥ÇöµÇ¸ç ¾Æ·¡¿Í °°´Ù.
ÀÌÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù.
¸Þ½ÃÁö°¡ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®³ª ¼¹ö¿ÍÀÇ Á÷Á¢ ¿¬°áÀ» ÅëÇØ ¼ö½ÅµÇ´Â °ÍÀ̶ó¸é
¼ö½ÅÃø¿¡¼´Â ÀÌ ³¯Â¥¸¦ ÇöÀç ³¯Â¥·Î °£ÁÖÇÒ ¼ö ÀÖ´Ù. HTTP ÇÁ·ÎÅäÄÝ µ¿ÀÛÀÇ
ù ½Ã¹ßÁ¡ÀÇ ÀÔÀå¿¡¼ º¸¸é, ³¯Â¥¶ó°í ÇÏ´Â Á¤º¸´Â ij½ÃµÇ¾î ÀÖ´ø Á¤º¸¸¦
°ËÁõÇϱâ À§ÇÑ Áß¿äÇÑ ¿ä¼ÒÀ̹ǷΠÀÀ´äÇÏ´Â ¼¹ö¿¡¼´Â Ç×»ó Date Çì´õ¸¦
Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÑ´Ù.
Entity Çì´õÀÇ Expires Çʵå´Â Àü´ÞÇÏ´Â µ¥ÀÌŸ¸¦ Àǹ̾ø´Â ´ë»óÀ¸·Î °£ÁÖÇÏ´Â
½Ã±â¸¦ Ç¥½ÃÇÑ´Ù. ´Ù½Ã ¸»ÇØ,
½ÄǰÀÇ À¯È¿±â°£ Ç¥½Ã¿Í °°ÀÌ ÀÏÁ¤ ±â°£ À¯È¿ÇÑ ´ë»ó¿¡ ´ëÇØ ±× ½Ã°¢À» Áö³ª¼´Â
À¯È¿ÇÏÁö ¾Ê´Ù°í ÁöÁ¤ÇÒ ¶§ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ¸¸¾à ij½ÃµÇ¾î ÀÖ´Â µ¥ÀÌŸ¿¡ ´ëÇØ
ÀÌ·¸°Ô Ç¥½ÃµÇ¾î ÀÖÀ» ¶§¶ó¸é ÁöÁ¤ÇÑ ½Ã°¢ÀÌ Áö³ª°í ³ ´ÙÀ½¿¡´Â ij½ÃµÇ¾î ÀÖ´Â
µ¥ÀÌŸ¸¦ Áö¿öµµ µÇ´Â °ÍÀÌ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
ÀÌ·¸°Ô ÁöÁ¤µÈ ³¯Â¥°¡ Date Çì´õ Çʵ忡 ÀÇÇØ ÁöÁ¤µÈ °Íº¸´Ù ¾Õ¼± ³¯Â¥°Å³ª
°°Àº ³¯Â¥¶ó¸é ¼ö½ÅÃø¿¡¼´Â Æ÷ÇÔµÈ entity¸¦ Àý´ë ij½ÃÇØ¼´Â ¾È µÈ´Ù.
ÇØ´ç ÀÚ¿øÀÌ »ç¿ëÀÚ³ª ¾î¶² ½ÇÇà ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÀÚÁÖ º¯°æµÉ °¡´É¼ºÀÌ ÀÖ´Â
°ÍÀ̶ó¸é Expires ³¯Â¥µµ ±×¸¸Å ¹Ý¿µµÇ¾î¾ß ÇÑ´Ù.
¿ä±¸ ¸Þ½ÃÁöÀÇ From Çì´õ Çʵ忡´Â ºê¶ó¿ìÀú¸¦ »ç¿ëÇÏ¿© ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³½
»ç¿ëÀÚÀÇ E-mail ÁÖ¼Ò°¡ µé¾î°£´Ù. ÀÌ ÁÖ¼Ò´Â RFC 822¿¡ mailbox·Î Á¤ÀǵǾî
ÀÖ´Â °Í°ú °°ÀÌ µ¿ÀÛ ½Ã½ºÅÛÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ̾î¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ
±¸¼ºµÈ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö°¡ ÀÖ´Ù.
ÀÌ·¯ÇÑ Çì´õ Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© ÀÌ¿ëÀÚ¿¡ ´ëÇÑ Á¤º¸¸¦ ÃàÀûÇÒ ¼ö ÀÖÀ¸¸ç,
ºÎÀûÀýÇÏ°Ô ¼ºñ½º ¿äûÀ» ÇÏ´Â »ç¿ëÀÚ³ª ¿øÇÏÁö ¾Ê´Â »ç¿ëÀÚ¸¦ ½Äº°ÇÏ´Â ¼ö´ÜÀ¸·Î
Ȱ¿ëÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª À̰ÍÀ» »ç¿ëÀÚ Á¢±Ù Á¦¾îÀÇ ¼ö´ÜÀ¸·Î¼ »ç¿ëÇØ¼´Â ¾È
µÈ´Ù.
ÀÌ Çì´õ Á¤º¸´Â ¼ºñ½º ¿äûÇÑ ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â method¿¡ ´ëÇØ Ã¥ÀÓÀ»
Áö´Â »ç¶÷À̶õ Àǹ̷μ ÇØ¼®µÈ´Ù. ƯÈ÷, ·Îº¿ ¿¡ÀÌÀüÆ®¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡ ·Îº¿À»
¼öÇà½ÃŰ´Â »ç¶÷ÀÇ ¿¬¶ô Á¤º¸·Î¼ ¹Ýµå½Ã µé¾î°¡ ÀÖ¾î¾ß ÇÑ´Ù. À̰ÍÀ» ÅëÇØ
¼ö½ÅÃø¿¡¼ ¸¸¾à ¹®Á¦°¡ ¹ß»ýÇß´Ù¸é °æÀ§ ¼³¸íÀ» ¿ä±¸ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¿©±â¼ »ç¿ëÇÏ´Â E-mail ÁÖ¼Ò´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ »ý¼º½ÃŰ´Â È£½ºÆ® ÁÖ¼Ò¿Í´Â
º°°³·Î¼ 󸮵Ǿî¾ß ÇÑ´Ù. ±×·¡¾ß¸¸ ÇÁ¶ô½Ã ¼¹ö¸¦ Åë°úÇÏ´Â °æ¿ì¿¡µµ
ÃÖÃÊ ¼ºñ½º ¿äûÀÚÀÇ ÁÖ¼Ò°¡ ±×´ë·Î Àü´ÞµÉ ¼ö Àֱ⠶§¹®À̰í, ±×¸®°í ¹Ýµå½Ã
±×¸® µÇ¾î¾ß ÇÑ´Ù.
±×·¯³ª ÀÌ Á¤º¸´Â Ŭ¶óÀÌ¾ðÆ®¿¡¼ »ç¿ëÀÚÀÇ µ¿ÀÇ ÇÏ¿¡ Àü´ÞµÇ¾î¾ß ÇÑ´Ù.
À̰ÍÀº »ç¿ëÀÚÀÇ °³ÀÎ ÃëÇâ ¹®Á¦ÀÏ ¼öµµ ÀÖ°í, »ç¿ëÀÚ°¡ À§Ä¡ ÇÏ´Â °÷ÀÇ
º¸¾È Á¤Ã¥¿¡ ÀÇÇØ¼ÀÏ ¼öµµ ÀÖÁö¸¸, ¹Ýµå½Ã »ç¿ëÀÚ°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³»±â
Àü¿¡ From Çì´õ Çʵ带 ÇÔ²² º¸³¾ °ÍÀÎÁö º¸³»Áö ¾ÊÀ» °ÍÀÎÁö ¶Ç´Â ¼öÁ¤ÇÒ °ÍÀÌÁö
°áÁ¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
¿ä±¸ ¸Þ½ÃÁöÀÇ If-Modiied-Since Çì´õ Çʵå´Â 8.1ÀÇ ¼³¸í¿¡¼¿Í °°ÀÌ
GET method¿Í
ÇÔ²² Á¶°ÇºÎ µ¿ÀÛÀ¸·Î Ȱ¿ëµÈ´Ù. Áï, ºê¶ó¿ìÀú°¡ ¿ä±¸ÇÏ´Â ¹®¼¿¡ ´ëÇØ ¼¹ö´Â
ÀÌ Çʵ忡 ÁöÁ¤µÇ¾î ÀÖ´Â ½Ã°¢ ÀÌÈÄ¿¡ ¼öÁ¤µÈ ÈÀϸ¸ Á¦°øÇØÁØ´Ù. ÁöÁ¤ ½Ã°¢
ÀÌÈÄ¿¡ º¯°æµÇÁö ¾Ê¾Æ¼ ÇØ´ç ¹®¼¸¦ Àü´ÞÇÏÁö ¾ÊÀ» °æ¿ì¿¡´Â Entity-Body ¾øÀÌ
304 (not modified) ÀÀ´ä¸¸ º¸³½´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö°¡ ÀÖ´Ù.
Entity Çì´õ Çʵ忡 µé¾î°¡´Â Last-Modified Çʵå´Â ¼Û½ÅÃø¿¡¼ ÀÌ ¹®¼ÀÇ ¸¶Áö¸· ÀÛ¾÷
ÀÏÀÚ¿Í ½Ã°£À» ¾Ë·ÁÁÖ´Â ¿ëµµ·Î ¾²ÀδÙ. ÀÌÀÇ Á¤È®ÇÑ Àǹ̴ ¼ö½ÅÃøÀÌ ÀÌ ¹®¼¸¦
¾î¶»°Ô ó¸®ÇØ¾ß Çϴ°¡¸¦ ¾Ë·ÁÁÖ´Â °ÍÀÌ´Ù. ¸¸¾à ¼ö½ÅÃø¿¡¼ ¼ö½ÅÇÏ´Â ¹®¼ÀÇ
Last-Modified ³¯Â¥°¡ ¼ö½ÅÃø¿¡ ¶È°°ÀÌ ÀúÀåµÇ¾î ÀÖ´Â º¹»çº» ¹®¼ÀÇ ³¯Â¥ ÀÌÈÄ °ÍÀ̶ó¸é
¼ö½ÅÃøÀº ¾Õ¼ ÀúÀåµÈ ¹®¼¸¦ ¹«È¿·Î¼ ÀνÄÇÏ¿© »èÁ¦ÇϵçÁö ´ëÄ¡ÇϵçÁö ±¸Çö»óÀÇ
¹®Á¦·Î¼ ÀûÀýÈ÷ ó¸®ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
ÀÀ´ä ¸Þ½ÃÁöÀÇ Location Çì´õ Çʵå´Â Request-URI¿¡ ÀÇÇØ
ÁöÁ¤µÇ¾î ÀÖ´Â ´ë»óüÀÇ
Á¤È®ÇÑ À§Ä¡¸¦ Ç¥½ÃÇÑ´Ù. Redirection 3xx »óÅ ÄÚµåÀÇ ÀÀ´äÀ» À§ÇØ location Á¤º¸´Â
´ë»óü¿¡ ´ëÇÑ ÀÚµ¿ À§Ä¡ º¯È¯À» (automatic redirection) À§ÇØ ¼¹ö°¡ °áÁ¤ÇÏ´Â
URL·Î¼ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. Request-URI¿¡¼´Â »ó´ëÀûÀÎ °æ·Î·Î Ç¥½ÃµÉ ¼ö ÀÖ¾úÀ¸³ª,
¿©±â¼´Â Àý´ë °æ·Î¸¸ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
General HeaderÀÇ Pragma Çʵå´Â ¿ä±¸/ÀÀ´äÀÇ ¿¬¼â µ¿ÀÛ¿¡ µû¶ó ¾î´À ¼ö½ÅÃø¿¡
Àû¿ëµÇ´Â º¯¼ö·Î¼ ±¸Çö¿¡ °ü·ÃµÈ °ÍµéÀ» Æ÷ÇÔÇÏ´Â µ¥ ¾²ÀδÙ. ¸ðµç Pragma º¯¼ö´Â
ÇÁ·ÎÅäÄÝÀÇ °üÁ¡¿¡¼ ¼±ÅÃÀûÀÎ µ¿ÀÛÀ» ÁöÁ¤ÇÑ´Ù.
¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î ¾²ÀδÙ.
¸¸¾à "no-cache" º¯¼ö°¡ ¿ä±¸ ¸Þ½ÃÁö¿¡ Á¸ÀçÇÑ´Ù¸é ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â ÇØ´ç
ÀÚ¿øÀÌ Ä³½ÃµÇ¾î ÀÖÀ»Áö¶óµµ ¿ø·¡ À§Ä¡Çϰí ÀÖ´Â ¼¹ö·Î ¿ä±¸ ¸Þ½ÃÁö¸¦ Àü´ÞÇØ¾ß
ÇÑ´Ù. À̰ÍÀº Ŭ¶óÀÌ¾ðÆ®°¡ º¸³»´Â ¿ä±¸¿¡ ´ëÇØ ½Å·ÚÇÒ ¼ö ÀÖ´Â ÀÀ´äÀ» ¹Þ°íÀÚ
ÇÒ ¶§ ¾²ÀÏ ¼ö ÀÖÀ¸¸ç, ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®¿¡°Ô ¹®Á¦¼º Àִ ij½Ã ¹®¼¸¦ À籸¼ºÇÒ
¼ö ÀÖµµ·Ï ÇÒ ¶§ ¾²ÀÏ ¼ö ÀÖ´Ù.
¿ä±¸ ¸Þ½ÃÁöÀÇ Referer Çì´õ Çʵå´Â ¼¹ö¸¦ À§ÇØ »ç¿ëµÇ´Â °ÍÀε¥,
Ŭ¶óÀÌ¾ðÆ®°¡ ¿äûÇÑ
Request-URI Á¤º¸¸¦ ¾Ë°Ô µÈ ¿ø·¡ ¹®¼ÀÇ ÁÖ¼Ò¸¦ ³ªÅ¸³¾ ¶§ ¾²ÀδÙ. Áï, A¶ó´Â ¹®¼¸¦
ºê¶ó¿ìÀú¿¡¼ º¸°í ÀÖÀ» ¶§ ÀÌ ¹®¼¿¡ Æ÷ÇÔµÈ ¸µÅ©¸¦ ÀÌ¿ëÇÏ¿© B ¹®¼¸¦ ¿äûÇÑ´Ù°í
ÇÒ ¶§, B ¹®¼¸¦ Áö½ÃÇÏ´Â Request-URI´Â A¶ó°í ÇÏ´Â ¹®¼¿¡¼ ¾Ë·ÁÁø °ÍÀ̹ǷÎ
B ¹®¼¸¦ ¿äûÇÏ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ µé¾î°¡´Â Referer´Â A°¡ µÈ´Ù.
À̸¦ ÅëÇØ ¼¹ö´Â ÇϳªÀÇ ¹®¼¿¡ ´ëÇØ ¸µÅ©µÇ¾î ÀÖ´Â ÀÌÀü ¹®¼µéÀÇ back-links¸¦ ±¸¼ºÇÒ
¼ö ÀÖ°Ô µÇ°í, URL Á¤º¸°¡ À߸ø ±âÀçµÈ ¹®¼µéÀ» ÃßôÇÒ ¼ö ÀÖ°Ôµµ µÈ´Ù.
¸¸¾à »ç¿ëÀÚ°¡ Á÷Á¢ ÀÔ·ÂÇÑ URIÀÇ °æ¿ìó·³ Referer°¡ ¾ø´Â °æ¿ì¶ó¸é Àý´ë Referer¸¦
Àü´ÞÇØ¼´Â ¾È µÈ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö°¡ ÀÖ´Ù.
ÀÌ·¯ÇÑ Referer Á¤º¸°¡ ³ªÅ³»´Â ¸µÅ© Á¤º¸¸¦ ¾Õ¼ÀÇ From Á¤º¸Ã³·³ °³ÀÎ ÃëÇâÀ̳ª
º¸¾È ¹®Á¦ ¶§¹®¿¡ ¼¹ö¿¡°Ô º¸³»Áö ¾Ê°íÀÚ ÇÒ ¼öµµ ÀÖ´Ù. ±×·¯¹Ç·Î ºê¶ó¿ìÀú¿¡¼´Â
Referer Á¤º¸³ª From Á¤º¸¸¦ º¸³¾ °ÍÀÎÁö º¸³»Áö ¾ÊÀ» °ÍÀÎÁö °áÁ¤ÇÒ ¼ö ÀÖ´Â
¼ö´ÜÀ» Á¦°øÇÏ¿©¾ß ÇÑ´Ù.
ÀÀ´ä ¸Þ½ÃÁöÀÇ Server Çì´õ Çʵå´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ó¸®Çϱâ À§ÇØ ¼¹ö°¡ »ç¿ëÇÏ´Â
ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á¤º¸¸¦ ´ã°í ÀÖ´Ù. ÀÌ Çʵå´Â Á¦Ç°¿¡ °üÇÑ ¿©·¯ °¡Áö »çÇ×À»
´ãÀ» ¼öµµ ÀÖÀ¸¸ç ¼¹ö¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë¸®´Â µ¥¿¡ »ç¿ëµÈ´Ù. ÀÌ·¸°Ô ¿©·¯ °¡Áö
»çÇ×ÀÌ ¿Ã ¼ö ÀÖÀ¸¹Ç·Î Á¦ÀÏ Áß¿äÇÑ ¿ä¼ÒºÎÅÍ ¸ÕÀú ³ª¿Çϵµ·Ï ÇÑ´Ù.
´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
¸¸¾à ÀÌ·¯ÇÑ ÀÀ´ä ¸Þ½ÃÁö°¡ ÇÁ¶ô½Ã ¼¹ö¸¦ °ÅÄ¡°Ô µÈ´Ù¸é ÇÁ¶ô½Ã ¼¹ö´Â Àڽſ¡
´ëÇÑ Á¤º¸¸¦ ÀÌ ³»¿ë¿¡ Ãß°¡Çؼ º¸³»¼´Â ¾È µÈ´Ù.
±×·±µ¥ ÀÌ·± Á¤º¸¸¦ ÅëÇØ ¾î´À ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇϰí ÀÖ´ÂÁö ¾Ë ¼ö ÀÖ°í
À̸¦ ÅëÇØ ÀÌ¹Ì ¾Ë·ÁÁø º¸¾È Ãë¾àÁ¡À» Ȱ¿ëÇÏ¿© ÇØÅ·À» ÇÒ ¼ö ÀÖÀ¸¹Ç·Î
¼¹ö ±¸ÇöÀÚµéÀº ÀÌ Á¤º¸¸¦ º¸³¾ °ÍÀÎÁö ¾È º¸³¾ °ÍÀÎÁö ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï
±¸ÇöÇÏ´Â °ÍÀÌ ÁÁ´Ù.
¿ä±¸ ¸Þ½ÃÁöÀÇ User-Agent Çʵå´Â »ç¿ëÀÚ°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ »ý¼º½ÃŰ´Â ºê¶ó¿ìÀú¿¡ ´ëÇÑ
Á¤º¸¸¦ ³ªÅ¸³½´Ù. À̰ÍÀº Åë°èÀûÀÎ ¸ñÀû, ÇÁ·ÎÅäÄÝ À§¹è¿¡ ´ëÇÑ ÃßÀû, ƯÁ¤ ºê¶ó¿ìÀúÀÇ
ÇѰ踦 ÇÇÇϱâ À§ÇÑ ÀûÀýÇÑ ÀÀ´äÀÇ ¸ñÀûÀ¸·Î ºê¶ó¿ìÀú Á¾·ù ÀÎ½Ä µî°ú °°Àº ¸ñÀûÀ¸·Î
¾²ÀÏ ¼ö ÀÖ´Ù. ÀÌ Á¤º¸°¡ ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÒÁö¶óµµ user agents´Â ¿ä±¸ ¸Þ½ÃÁö¿¡
ÀÌ Á¤º¸¸¦ Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù. ÀÌ Çʵ忡´Â ¿©·¯ °³ÀÇ Á¦Ç° ¸íĪÀÌ Æ÷Ç﵃ ¼ö ÀÖÀ¸¸ç
Á߿䵵¿¡ µû¶ó ¼ø¼´ë·Î ³ª¿ÇÏ¿©¾ß ÇÏ°í ¿ì¼± ¼øÀ§°¡ ³ôÀº °ÍÀ» ¾Õ¿¡´Ù ¸í½ÃÇϵµ·Ï ÇÑ´Ù.
´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
»ç¿ëÀÚÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â Á¤º¸°¡ º¸¾ÈÀÌ ÇÊ¿ä·Î ÇÏ´Â °ÍÀ̶ó¸é
¼¹ö´Â ¼ºñ½º¸¦ Á¦°øÇØÁÖ±â À§ÇØ »ç¿ëÀÚÀÇ ÀÎÁõÀ» ¿ä±¸ÇÒ °ÍÀÌ´Ù. ±×·¯¹Ç·Î
¼¹ö´Â WWW-Authenticate Çʵ带 Æ÷ÇÔ½ÃÄÑ ÀÀ´ä ¸Þ½ÃÁö¸¦
ºê¶ó¿ìÀú¿¡°Ô Àü´ÞÇϵµ·Ï ÇÑ´Ù.
ÀÌ·¯ÇÑ WWW-Authenticate Çì´õ Çʵå´Â 401 (unauthorized) ÀÀ´ä ¸Þ½ÃÁö¿¡´Â ¹Ýµå½Ã
Æ÷ÇԵǾî¾ß ÇÏ´Â °ÍÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
HTTP ÇÁ·ÎÅäÄÝ¿¡¼ÀÇ »ç¿ëÀÚ ÀÎÁõ °úÁ¤Àº 11Àå¿¡¼ ¼³¸íµÇ°í ÀÖ´Ù.
Çʵ尡 Çϳª ÀÌ»óÀÇ challenge¸¦ °®°í Àְųª Çϳª ÀÌ»óÀÇ
WWW-Authenticate Çì´õ
Çʵ尡 ÀÖ´Ù¸é user agents´Â WWW-Authenticate ÇÊµå °ªÀ» ÆÄ½ÌÇÒ ¶§ Ưº°ÇÑ
ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù. ¿Ö³ÄÇϸé challengeÀÇ ³»¿ëÀÌ ","·Î¼ ±¸ºÐµÇ´Â
ÀÏ·ÃÀÇ ÀÎÁõ ÆÄ¶ó¹ÌÅÍ ¸®½ºÆ®¸¦ Æ÷ÇÔÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
HTTP/1.0 ÇÁ·ÎÅäÄÝ¿¡¼´Â ¼¹ö°¡ Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸¿¡ ´ëÇØ °Ë»çÇϰí (challenge)
Ŭ¶óÀÌ¾ðÆ®°¡ ÀÎÁõ Á¤º¸¸¦ º¸³»´Â ´Ü¼øÇÑ °Ë»ç/ÀÀ´ä ÀÎÁõ ¸ÞÄ«´ÏÁòÀ»
(challenge-response authentication mechanism) »ç¿ëÇϰí Àִµ¥, ´ÙÀ½°ú
°°Àº Ç¥Çö½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
401 (unauthorized) ÀÀ´ä ¸Þ½ÃÁö´Â user agentÀÇ ÀÎÁõ °Ë»ç¸¦ À§ÇØ ¼¹ö¿¡ ÀÇÇØ
»ç¿ëµÇ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÀÀ´äÀº Àû¾îµµ ÇϳªÀÇ challenge¸¦ °¡Áø
WWW-Authenticate Çì´õ Çʵ带 Æ÷ÇÔÇÏ¿©¾ß Çϸç, À̶§ÀÇ challenge´Â
¿äû¹ÞÀº ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ̶ó¾ß ÇÑ´Ù.
realm attribute´Â ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾ÊÀ¸¸ç challenge¸¦ Æ÷ÇÔÇÏ´Â
¸ðµç ÀÎÁõ Ãǰèµé¿¡ ´ëÇØ ÇÊ¿äÇÑ °ÍÀÌ´Ù. realm attribute¿¡ ´ëÇÑ realm value´Â
´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϸç Á¢±ÙÇϰí ÀÖ´Â ¼¹öÀÇ root URL°ú °áÇÕÇÏ¿© Ç¥½ÃµÇ¾î
º¸È£ ¹üÀ§¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ·¯ÇÑ realmµéÀº ¼¹ö¿¡ ÀÖ´Â º¸È£ ÀÚ¿øµé¿¡ ´ëÇØ
º¸È£ ¿µ¿ªÀÇ ÁýÇÕÀÇ ÇüÅ·Π³ª´ ¼ö ÀÖ°Ô ÇØÁÖ¸ç, °¢°¢Àº µ¶ÀÚÀûÀÎ
ÀÎÁõ ü°è¿Í ÀÎÁõ µ¥ÀÌŸº£À̽º¸¦ °¡Áú ¼ö ÀÖ´Ù. realm value´Â ¹®ÀÚ¿·Î¼
¼¹ö¿¡ ÀÇÇØ ÇÒ´çµÇ´Â °ÍÀÌ´Ù.
user agent°¡ ÀÚ±â ÀÚ½ÅÀ» ¼¹ö¿¡°Ô ÀÎÁõ¹Þ°íÀÚ ÇÑ´Ù¸é ¿ä±¸ ¸Þ½ÃÁö¿Í ÇÔ²²
Authorization Çì´õ Çʵ带 Æ÷ÇÔ½ÃÄѼ º¸³½´Ù. ÀÌ ÇʵåÀÇ value´Â ¿äûÇÏ´Â
ÀÚ¿ø¿¡ ´ëÇÑ user agentÀÇ ÀÎÁõ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â credentials·Î ±¸¼ºµÈ´Ù.
(10.2 ÂüÁ¶)
user agent°¡ credentialsÀ» ÀÚµ¿ÀûÀ¸·Î Àû¿ëÇÒ ¼ö ÀÖ´Â ¹üÀ§´Â º¸È£ ¹üÀ§¿¡
ÀÇÇØ °áÁ¤µÈ´Ù. ÀÌÀü ¿ä±¸°¡ ÀÌ¹Ì ÀÎÁ¤µÇ¾ú´Ù¸é,
ÀÎÁõ ü°è, ÆÄ¶ó¹ÌÅÍ, ¹× »ç¿ëÀÚ ¼±È£µµ¿¡ ÀÇÇØ °áÁ¤µÇ´Â ÀÏÁ¤ ½Ã°£ µ¿¾È
°°Àº credentialsÀº º¸È£ ¹üÀ§ ³»ÀÇ ¸ðµç ¿ä±¸¿¡ ´ëÇØ Àç»ç¿ëµÉ ¼ö ÀÖ´Ù.
¸¸¾à ¼¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¿Í ÇÔ²² Àü´ÞµÈ credentialsÀ» Á¢¼öÇÏÁö ¾Ê°íÀÚ
ÇÑ´Ù¸é 403 (forbidden) ÀÀ´äÀ» º¸³»¾î¾ß ÇÑ´Ù.
ÇÁ¶ô½Ã ¼¹ö´Â user agent ÀÎÁõÀ» À§ÇØ
WWW-Authentication°ú Authorization
Çì´õ¸¦ ¿ø·¡ »óÅ ±×´ë·Î Áß°èÇØ¾ß Çϰí, AuthorizationÀ» Æ÷ÇÔÇϰí ÀÖ´Â
¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ» Àý´ë ij½ÃÇØ¼´Â ¾È µÈ´Ù. HTTP/1.0¿¡¼´Â
Ŭ¶óÀÌ¾ðÆ®°¡ ÇÁ¶ô½Ã¿Í ÀÎÁõÇÏ´Â ¼ö´ÜÀº Á¦°øÇÏÁö ¾Ê´Â´Ù.
"Basic" ÀÎÁõ ü°è´Â user agent°¡ °¢ º¸¾È ¿µ¿ª¿¡ ´ëÇØ »ç¿ëÀÚ ¾ÆÀ̵ð¿Í
ºñ¹Ð¹øÈ£·Î ÀÚ½ÅÀ» Áõ¸íÇÏ´Â ¸ðµ¨¿¡ ±â¹ÝÇϰí ÀÖ´Ù. ¼¹ö´Â
Request-URI¿¡
ÁöÁ¤µÈ ¿µ¿ª¿¡ ´ëÇÑ »ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ °Ë»çÇÏ¿© Åë°úµÉ ¶§¸¸
ÇØ´ç ¿ä±¸¿¡ ´ëÇÑ ÀÎÁõÀ» Çã°¡ÇÑ´Ù. ¿©±â¼ ¼±Åà °¡´ÉÇÑ ÀÎÁõ ÆÄ¶ó¹ÌÅÍ´Â ¾ø´Ù.
º¸¾È ¿µ¿ª ³»ÀÇ ¾î´À URI¿¡ ´ëÇØ ÀÎÁõµÇÁö ¾ÊÀº ¿ä±¸¸¦ ¼ö½ÅÇÏ°Ô µÇ¸é
¼¹ö´Â ´ÙÀ½°ú °°Àº challenge¸¦ ÀÀ´äÇÏ¿©¾ß ÇÑ´Ù.
¿©±â¼ "WallyWorld"¶õ Request-URIÀÇ º¸¾È ¿µ¿ªÀ» ¸í½ÃÇϱâ À§ÇØ ¼¹ö°¡
ºÎ¿©ÇÏ´Â ¹®ÀÚ¿ÀÌ´Ù.
ÀÎÁõÀ» ¹Þ±â À§ÇØ Å¬¶óÀÌ¾ðÆ®´Â »ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ º¸³»´Âµ¥
µÎ °³ »çÀÌÀÇ ±¸ºÐÀº °¡¿îµ¥¿¡ ":" ¹®ÀÚ¸¦ ³Ö°í based64 ÀÎÄÚµùÀ» ÇÏ¿©
credentials¿¡ ³Ö¾î¼ º¸³½´Ù.
¸¸¾à »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ »ç¿ëÀÚ ¾ÆÀ̵ð·Î¼ "Aladdin" ºñ¹Ð¹øÈ£·Î¼
"open sesame"¸¦ ³Ö¾î¼ º¸³»°íÀÚ ÇÑ´Ù¸é, Ŭ¶óÀ̾ðÆ®ÀÇ ÀÎÁõ ¿äûÀ¸·Î¼
Authorization Çì´õ Çʵ带 »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÌ´Ù. (10.2Àý ÂüÁ¶)
ÀÌ¿Í °°Àº ±âº» ÀÎÁõ ¹æ½ÄÀº ºñº¸È£ ÀÎÁõ ¹æ½ÄÀ̸ç Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö »çÀÌÀÇ
TCP ¿¬°áÀÌ °ø°ÝÀ¸·ÎºÎÅÍ ¾ÈÀüÇÏ´Ù°í ½Å·ÚÇÒ¸¸ ÇÏ´Ù´Â ÀüÁ¦ ÇÏ¿¡ Ȱ¿ëÇÏ´Â °ÍÀÌ´Ù.
±×·¯¹Ç·Î ÀÌ ÀüÁ¦°¡ ¼º¸³ÇÏÁö ¾ÊÀ¸¸é ÀÌ ¹æ½ÄÀº °ø°ÝÀ¸·ÎºÎÅÍ ¾ÈÀüÇÏ´Ù°í ¸»ÇÒ
¼ö ¾ø´Ù. ÇöÀçÀÇ °³¹æÇü ³×Æ®¿öÅ©¿¡¼´Â ÀÌ ÀüÁ¦°¡ ¼º¸³ÇÑ´Ù°í ÇÒ ¼ö ¾øÀ¸¹Ç·Î
±âº» ÀÎÁõ ¹æ½ÄÀº Àû´çÈ÷ »ç¿ëµÇ¾î¾ß Çϸç, Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö¿ÍÀÇ ±âº» ÀÎÁõÀ»
À§ÇØ ÀÌ ¹æ½ÄÀ» ±¸ÇöÇÏ¿©¾ß ÇÑ´Ù.
HTTP/0.9·Î¼ Ç¥±âµÇ´ø Ãʱâ HTTP ÇÁ·ÎÅäÄÝÀº ÀÎÅͳÝÀ» ÅëÇØ µ¥ÀÌŸ ±×´ë·Î
¼Û¼ö½ÅÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î ¸¸µé¾îÁø ¸Å¿ì ´Ü¼øÇÑ ÇÁÅäÅäÄÝÀÌ´Ù. ±×·¡¼ ±â´ÉÀÇ Çâ»óÀ»
À§ÇØ HTTP/1.0 ÇÁ·ÎÅäÄÝÀ» ¼³°èÇÏ¿© ¸Þ½ÃÁö¸¦ MIME°ú ºñ½ÁÇÑ Çü½ÄÀ¸·Î ±¸¼ºÇÒ ¼ö ÀÖ°Ô
Çϰí Àü¼ÛÇÏ´Â µ¥ÀÌŸ¿¡ ´ëÇÑ ¿ÜÇü Á¤º¸¸¦ Àü´ÞÇÏ°í ¿ä±¸/ÀÀ´ä ü°è¿¡ ÀÖ¾î¼ÀÇ Ç¥Çö½ÄÀ»
º¸°ÇÏ¿´´Ù.
±×·¯³ª HTTP/1.0¿¡´Â °èÃþÀû ±¸Á¶ÀÇ ÇÁ¶ô½Ã ¼¹ö¿Í ij½Ì¿¡ ´ëÇÑ °í·Á°¡ ¾ø°í »ó½Ã ¿¬°á
(persistent connection) ¹× °¡»ó È£½ºÆ®¿¡ ´ëÇÑ Çʿ伺¿¡ ´ëÇÑ ¾ð±Þµµ ¾ø´Ù. ´õ¿ì±â
Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö »çÀÌ¿¡ °¢°¢ÀÇ ¸ðµç ó¸® ´É·Â¿¡ ´ëÇÑ Çù»ó ¶Ç´Â °áÁ¤¿¡ ´ëÇÑ
¾î¶² ±â´Éµµ Áö¿øµÇÁö ¾ÊÀ¸¹Ç·Î ÇÁ·ÎÅäÄÝ ¹öÀüÀÇ º¯°æ°ú ÇÔ²² ±â´É Çâ»óÀ» µµ¸ðÇϰÔ
µÇ¾ú´Ù.
ÀÌ¿¡ µû¶ó ±â´É Çâ»óµÇ´Â HTTP/1.0 ÇÁ·ÎÅäÄÝÀ» HTTP/1.1·Î À̸§ ºÙÀ̱â·Î ÇÏ¿´´Ù.
HTTP/1.1¿¡¼´Â Çâ»óµÈ ±â´ÉÀ» ½Å·Ú¼º ÀÖ°Ô ±¸ÇöÇϱâ À§ÇØ º¸´Ù ¾ö¹ÐÇÑ ¿ä±¸»çÇ×µéÀ»
Á¤ÀÇÇϰí ÀÖ´Ù.
HTTP/1.0 ÇÁ·ÎÅäÄÝÀÇ Æ¯Â¡Àº ´Ü¼ø¼º¿¡ ÀÖ´Ù. ±×·¡¼ ¿¬°áÀ» ¸¸µé°í µ¿ÀÛÇϰí
¿¬°áÀ» ÇØÁ¦ÇÏ´Â ´Ü¼øÇÑ °úÁ¤À¸·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, ÇϳªÀÇ URLÀº ÇϳªÀÇ
TCP ¿¬°áÀÌ µÇµµ·Ï ¸¸µé¾îÁ® ÀÖ´Ù.
¿¬°áÀÇ ¼³¸³/µ¿ÀÛ/ÇØÁ¦ÀÇ ´Ü¼ø µ¿ÀÛÀÌ °è¼Ó ¹Ýº¹µÊÀ¸·ÎÇØ¼ ³×Æ®¿öÅ©ÀÇ
congestion¿¡ ´ëÇÑ Á¤º¸¸¦ È®º¸ÇÒ ¼ö°¡ ¾ø¾ú´Ù. ¿¬°áÀÌ °è¼Ó Áö¼ÓµÇ¾î ÀÖ´Ù¸é
Á¤º¸ ÃàÀû°ú ºÐ¼®À» ÅëÇØ Æ®·¡ÇÈÀÇ È¥ÀâÀ» ÀνÄÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.
¶ÇÇÑ ÀæÀº ¿¬°á ¼³¸³°ú µ¿½Ã¿¡ ¿©·¯ °³ÀÇ ¿¬°áÀ» ¼³¸³ÇÏ´Â µ¿ÀÛÀ» ÅëÇØ bandwidth°¡
³·Àº ¸µÅ©¿¡¼ congestion ¹®Á¦ÀÇ °¡´É¼ºÀ» ³ôÀÌ°í »ç¿ëÀÚ¿¡°Ô´Â ºÒ¸¸Á·½º·±
¼º´ÉÀ» Á¦°øÇØÁÖ°Ô µÈ´Ù.
ij½Ã ¸ðµ¨ÀÇ ¹ÌÈíÇÔµµ ¹®Á¦ÀÌ´Ù. ij½Ì¿¡ °üÇØ ¼³°èÇÑ ¸ðµ¨ÀÌ ÃʱâÀûÀÎ ÇüÅ·Î
±¸¼ºµÇ¾ú±â ¶§¹®¿¡ µ¿ÀÛ»óÀÇ ¿À¹öÇìµåµµ ¸¸µé°í ij½ÃµÈ µ¥ÀÌŸ °ü¸®¿¡µµ
¹®Á¦¸¦ °®°í ÀÖ¾ú´ø °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ ¹®Á¦µéÀ» ÇØ°áÇϰí, Ãß°¡ÀûÀÎ °í·Á »çÇ×À» ¹Ý¿µÇÑ HTTP/1.1 ÇÁ·ÎÅäÄÝÀ»
¼³°èÇÏ°Ô µÈ °ÍÀÌ´Ù.
ÀÌ ¹®¼¿¡¼´Â HTTP/1.1ÀÇ Àüü ±Ô°Ý¿¡ ´ëÇÑ »ó¼¼ ¼Ò°³´Â ÇÏÁö ¾Ê°í, HTTP/1.0 ¹öÀü°úÀÇ
ºñ±³¿¡ ÀÇÇÑ ÁÖ¿ä Â÷ÀÌÁ¡¸¸ »ìÆìº¸µµ·Ï ÇÑ´Ù. HTTP/1.1¿¡ ´ëÇÑ »ó¼¼ ¼Ò°³´Â ´ÙÀ½ ´Ü°èÀÇ
¹®¼ Á¤¸® ¶§ ¸¶¹«¸®Çϵµ·Ï ÇÑ´Ù.
HTTP/1.1¿¡¼ »ç¿ëÇϰí ÀÖ´Â ¿ë¾îµéÀº ±âº»ÀûÀ¸·Î HTTP/1.0¿¡¼ »ç¿ëÇϰí ÀÖ´Â ¿ë¾î
Á¤ÀǸ¦ ±×´ë·Î ÀÌ¿ëÇϰí ÀÖÀ¸¸ç, HTTP/1.1 Ãß°¡ ±â´ÉÀ» À§ÇÑ »ó´ç¼ö »õ·Î¿î ¿ë¾î Á¤Àǰ¡
Ãß°¡µÇ¾ú´Ù.
HTTP/1.1ÀÇ Æ¯Â¡ °¡¿îµ¥ Çϳª°¡ content negotiationÀ̶ó°í ÇÏ´Â °ÍÀÌ´Ù. (???Àý ÂüÁ¶)
ÀÌ¿Í °ü·ÃµÈ ¿ë¾î Á¤Àǰ¡ Ãß°¡µÇ¾úÀ¸¸ç representation, content negotiation, variant
µîÀÌ´Ù.
°èÃþÀûÀÎ ÇÁ¶ô½Ã ¹× ij½Ã ±â´ÉÀÌ HTTP/1.1ÀÇ Æ¯Â¡À̸ç À̸¦ À§ÇÑ cachable, first-hand,
explicit expiration time, heuristic expiration time, age, freshness lifetime, fresh,
stale, semantically transparent, validator µîÀÇ ¿ë¾î°¡ Ãß°¡µÇ¾ú´Ù.
ÇÁ·ÎÅäÄÝ ÆÄ¶ó¹ÌÅÍ¿Í °ü·ÃÇØ¼´Â ´ÙÀ½°ú °°Àº »çÇ×µéÀÌ º¯°æµÇ¾ú´Ù.
¸Þ½ÃÁö ±¸¼º Çü½ÄÀ» ³ªÅ¸³»±â À§ÇÑ Ç¥Çö½ÄÀÌ HTTP/1.0¿¡ ºñÇØ ´Þ¶óÁ³´Ù.
entity-body¶õ À̸§ÀÌ message-body¶õ À̸§À¸·Î ¹Ù²î¾úÀ¸³ª ÀüüÀûÀ¸·Î
Ç¥Çö½Ä¸¸ ´Þ¶óÁ³À» »Ó ½ÇÁ¦ ±¸¼º Çü½ÄÀº HTTP/1.0°ú °°´Ù. ±×·¯³ª °¢ Çì´õ
¿¡ Æ÷ÇԵǴ Çì´õ Çʵå´Â ´Ù¼ö Ãß°¡µÇ¾î ÀÖÀ¸¸ç HTTP/1.0°ú´Â ´Þ¸® ±¸¼ºµÇ¾î ÀÖ´Ù.
General Header Field¸¸ ÇÏ´õ¶óµµ ±âÁ¸ÀÇ Data, Pragma¿¡ ´õÇØ
Cache-Control, Connection, Transfer-Encoding, Upgrade, Via µîÀÇ Çʵ尡
Ãß°¡µÇ¾î ÀÖ´Ù.
HTTP/1.0¿¡¼ÀÇ Request ¸Þ½ÃÁö¿Í ±âº» ±¸¼º Çü½ÄÀº ¶È°°À¸³ª request-haderÀÇ
Çì´õ Çʵ尡 ´Ù¼ö Ãß°¡µÇ¾ú°í, »ç¿ëÇÏ´Â methodÀÇ Á¾·ùµµ ¸¹ÀÌ ´Ã¾î³µ´Ù.
method´Â HTTP/1.0¿¡¼ ¾²ÀÌ´ø °ÍµéÀÌ ´ÙÀ½°ú °°´Ù.
ÀÌ·¯ÇÑ methodµé¿¡ Ãß°¡ÇÏ¿© HTTP/1.1¿¡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
request-headerÀÇ Çʵ忡´Â HTTP/1.0ÀÇ °ÍÀÌ ´ÙÀ½°ú °°À¸¸ç,
HTTP/1.1¿¡¼´Â À§ Çʵ忡 ´õÇØ ´ÙÀ½°ú °°Àº °ÍµéÀÌ Ãß°¡µÇ¾ú´Ù.
HTTP/1.0¿¡¼ÀÇ Response ¸Þ½ÃÁö¿Í ±âº» ±¸¼º Çü½ÄÀº ¶È°°À¸³ª response-haderÀÇ
Çì´õ Çʵ尡 ´Ù¼ö Ãß°¡µÇ¾ú°í, »óÅ ÄÚµåÀÇ Á¾·ùµµ ´Ù¼ö ´Ã¾î³µ´Ù.
response-headerÀÇ Çʵ忡´Â HTTP/1.0ÀÇ °ÍÀÌ ´ÙÀ½°ú °°À¸¸ç,
HTTP/1.1¿¡¼´Â À§ Çʵ忡 ´õÇØ ´ÙÀ½°ú °°Àº °ÍµéÀÌ Ãß°¡µÇ¾ú´Ù.
entity-haderÀÇ Çì´õ Çʵ尡 ´Ù¼ö Ãß°¡µÇ¾ú´Ù. HTTP/1.0ÀÇ °ÍÀÌ ´ÙÀ½°ú °°À¸¸ç,
HTTP/1.1¿¡¼´Â À§ Çʵ忡 ´õÇØ ´ÙÀ½°ú °°Àº °ÍµéÀÌ Ãß°¡µÇ¾ú´Ù.
TCP ¿¬°á °üÁ¡¿¡¼ µ¥ÀÌŸ ¼Û¼ö½ÅÀÇ È¿À²¼ºÀ» ³ôÀ̱â À§ÇÏ¿© »ó½Ã ¿¬°á
(persistent connection) ±â´ÉÀ» HTTP/1.0¿¡¼ Ãß°¡ÇÏ¿´´Ù. ÀÌ¿¡ µû¶ó
HTTP/1.1 ÇÁ·ÎÅäÄÝ¿¡ ±â¹ÝÇÏ´Â ¸ðµç HTTP ¿¬°áÀº »ó½Ã ¿¬°á ±â´É¿¡ ÀÇÇØ
¼¹ö¿¡ Á¢¼ÓÇÏ°Ô µÈ´Ù. µû¶ó¼ ¼¹ö´Â ¼ö¸³ÇÑ ¿¬°á¿¡ ´ëÇØ ÀÏ´Ü »ó½Ã ¿¬°áÀ̶ó°í
°£ÁÖÇØ¹ö¸°´Ù.
±×·¯¹Ç·Î ¿¬°áÀÇ ÇØÁ¦¸¦ À§ÇÑ ¼ö´ÜÀ» Á¦°øÇØ¾ß Çϴµ¥ À̰ÍÀÌ Connection Çì´õ
Çʵ尡 µÇ¸ç close¶õ ÆÄ¶ó¹ÌÅͰ¡ ¼¹ö·Î Àü´ÞµÇ¸é ¼³¸³µÈ »ó½Ã ¿¬°áÀº ÇØÁ¦µÇ°Ô
µÈ´Ù. ¹Ý´ë·Î ¼¹ö°¡ ÀÀ´äÀ» ÇÏ°í³ ÈÄ¿¡ ¿¬°áÀ» ÇØÁ¦ÇϰíÀÚ ÇÑ´Ù¸é Ŭ¶óÀÌ¾ðÆ®·Î
Àü¼ÛµÇ´Â ÀÀ´ä ¸Þ½ÃÁö¿¡ Connection Çì´õ Çʵ带 ³Ö¾î¼ close ÆÄ¶ó¹ÌÅ͸¦
Àü´ÞÇÏ¸é µÈ´Ù.
ÀÌ ±â´É¿¡ µû¶ó Ŭ¶óÀÌ¾ðÆ®´Â 'ÆÄÀÌÇÁ¶óÀÎ(pipeline)'À̶ó ºÒ¸®¿ì´Â ¿¬¼ÓÀûÀ¸·Î
¸î °³ÀÇ ¿ä±¸ ¸Þ½ÃÁö¸¦ °¢°¢¿¡ ´ëÇØ ÀÀ´äÀ» ¹ÞÁö ¾ÊÀº »óÅÂÀÓ¿¡µµ
º¸³¾ ¼ö ÀÖ°Ô µÈ´Ù. À̶§ ¼¹ö´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÑ ¼ø¼´ë·Î ÀÀ´ä ¸Þ½ÃÁö¸¦
Àü´ÞÇØ¾ß ÇÑ´Ù.
HTTP/1.0 ±Ô°Ý¿¡´Â ±âº» ÀÎÁõ ü°è (Basic Access Authentication, BAA)¿¡ ´ëÇÑ ±ÔÁ¤¸¸
ÀÖ¾úÀ¸³ª HTTP/1.1¿¡´Â ÇÁ¶ô½Ã¿Í »ç¿ëÇÏ´Â Proxy-Authentication Çʵå¿Í
Proxy-Authorization Çʵ尡 Ãß°¡µÇ¾î ÀÖÀ¸¸ç, ¶ÇÇÑ Digest Access Authentication
(DAA) ºÎºÐµµ Ãß°¡µÇ¾î ÀÖ´Ù.[1]
(BAA¿Í DAA¶õ ¿ë¾î´Â ¼Õ½¬¿î Ç¥±â¸¦ À§ÇØ ÀÌ ¹®¼¿¡¼¸¸ ¾²ÀÌ´Â °ÍÀ̹ǷÎ
´Ù¸¥ ¹®¼ ¼Ó¿¡ Ȥ½Ã ÀÖÀ»Áöµµ ¸ð¸£´Â BAA ¹× DAA¿Í È¥µ¿ÇÏÁö ¾Ê±â ¹Ù¶õ´Ù.)
HTTP/1.0¿¡¼ »ç¿ëµÇ´ø »ç¿ëÀÚ ÀÎÁõ ¹æ½ÄÀº
»ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð ¹øÈ£°¡ ¾Æ¹«·± ¾ÏÈ£È °úÁ¤¾øÀÌ ³×Æ®¿öÅ©¸¦ ÅëÇØ ¼¹ö·Î
Àü´ÞµÇ´ø °ÍÀÌ¾î¼ Å»Ãë ¹× °ø°ÝÀÇ °¡´É¼ºÀÌ ÀÖ¾úÀ¸¹Ç·Î, ÀÎÁõÀ» À§ÇÑ Á¤º¸¸¦
º¸´Ù ¾ÈÀüÇÑ ¹æ¹ýÀ¸·Î Àü´ÞÇϱâ À§ÇØ Digest Access Authentication ¹æ½ÄÀ»
»ç¿ëÇÑ´Ù.
DAA ¹æ½Äµµ BAA ¹æ½Ä°ú ¸¶Âù°¡Áö·Î ´Ü¼øÇÑ challenge-response ¸ÞÄ«´ÏÁòÀ¸·Î
µ¿ÀÛÇÑ´Ù. Basic ¹æ½Ä¿¡¼¿Í °°ÀÌ Åë½ÅÇÏ´Â ¾ç ÂÊ¿¡¼ µÑ ´Ù ºñ¹Ð¹øÈ£¸¦ °øÀ¯ÇÑ´Ù´Â
Á¡Àº °°´Ù. ±×·¯³ª DAA ¹æ½Ä¿¡¼´Â nonce value¸¦ »ç¿ëÇϰí ÀÖÀ¸¸ç, ÀÀ´ä ¸Þ½ÃÁö ¼Ó¿¡
MD5 checksum ¹æ½Ä¿¡ ÀÇÇØ ÀÎÄÚµùµÈ »ç¿ëÀÚ ¾ÆÀ̵ð, ºñ¹Ð¹øÈ£, ÁÖ¾îÁø nonce
value, HTTP method, request-URI µîÀÌ µé¾î°¡Áö¸¸, ºñ¹Ð¹øÈ£´Â Àý´ë clear textÀÇ
ÇüÅ·ΠÀü´ÞµÇÁö ¾Ê´Â´Ù.
ÀÌ °úÁ¤¿¡¼ ¼¹ö¿¡°Ô checksumÀ̳ª digest¸¦ »ý¼ºÇÏ´Â µ¥ ¾²ÀÌ´Â ¾Ë°í¸®ÁòÀ»
ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ¼±ÅÃÀû Çì´õ°¡ ÀÖ´Ù. ¿©±â¼´Â MD5 ¾Ë°í¸®ÁòÀÌ ±âº»ÀûÀ¸·Î
¼³Á¤µÇ¾î ÀÖÀ¸¸ç 128-bits MD5 digest°¡ 32°³ÀÇ ASCII ¹®Àڷμ Ç¥ÇöµÈ´Ù.
µû¶ó¼ MD5 ¾Ë°í¸®Áò¿¡¼ ¾Ë·ÁÁø ¹®Á¦Á¡µéÀÌ ±×´ë·Î DAA ¹æ½Ä¿¡¼µµ ³ªÅ¸³´Ù.
ÇÏÁö¸¸ DAA´Â BAA¸¦ ´ëÄ¡Çϱâ À§ÇØ ¸¸µé¾îÁø °ÍÀ̸ç, ¼¹ö Ãø¸é¿¡¼ÀÇ
ºñ¹Ð¹øÈ£ ½Ã½ºÅÛÀÌ °øÅëÀûÀ¸·Î °Þ°í ÀÖ´Â ¹®Á¦Á¡À̱⵵ ÇÏ´Ù. ÀÌ ÇÁ·ÎÅäÄÝÀº
kerberos ¸¸Å ¾ÈÀüÇÏÁö ¸øÇϰí, client-side private-key ¹æ½Ä¿¡ ºñÇØ¼µµ
¾ÈÀüÇÏÁö ¸øÇϱä ÇÏÁö¸¸, ¾ø´Â °Íº¸´Ù´Â ³´°í, ¶ÇÇÑ telnet, ftp¿¡¼ ¾²ÀÌ´Â
¹æ½ÄÀ̳ª BAA ¹æ½Äº¸´Ù´Â ´õ ÁÁÀº ¹æ¹ýÀÌ´Ù.
±×·¯¹Ç·Î À̰ÍÀÌ º¸¾ÈÀ» À§ÇÑ ¿Ïº®ÇÑ ÇØ°áÃ¥ÀÌ µÉ ¼ö´Â ¾øÀ¸¸ç, ¶ÇÇÑ
¸Þ½ÃÁö ¼ÓÀÇ ½ÇÁ¦ µ¥ÀÌŸ´Â ¾ÏÈ£È µÇÁöµµ ¾Ê°í Àü´ÞµÈ´Ù. DAA¸¦ ÅëÇØ ´Þ¼ºÇϰíÀÚ
Çß´ø °ÍÀº BAA ¹æ½ÄÀÌ °¡Áø °¡Àå ½É°¢ÇÑ ¹®Á¦Á¡À» ÇØ°áÇϰíÀÚ ÇÏ´Â ´Ü¼øÇÑ ¸ñÀû¿¡
Àֱ⠶§¹®¿¡ DAA¸¦ ÅëÇØ ¿Ïº®ÇÑ º¸¾ÈÀÌ ÀÌ·ç¾îÁø´Ù°í »ý°¢Çؼ´Â ¾È µÈ´Ù.
´ëºÎºÐÀÇ ´Ù¸¥ ÀÎÁõ ÇÁ·ÎÅäÄÝ¿¡¼ º¸´õ¶óµµ °ø°Ý¿¡ ´ëÇÑ À§ÇèÀº ÇÁ·ÎÅäÄÝ ÀÚü¿¡
ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó À̰ÍÀ» »ç¿ëÇÏ´Â µ¥ ÀÖ¾î¼ÀÇ º¸¾È Á¤Ã¥À̳ª ÀýÂ÷¿¡ ÀÇÇØ Á¿ìµÈ´Ù.
Digest Access AuthenticationÀ» »ç¿ëÇÏ´õ¶óµµ ÀÌÀÇ º¸¾È °µµ´Â ±¸Çö ¹æ½Ä¿¡
´Þ·Á ÀÖ°Ô µÈ´Ù.
ÀÌ·¯ÇÑ DAA ¹æ½ÄÀ» À§ÇØ WWW-Authenticate Çì´õ Çʵå¿Í Authorization Çì´õ Çʵ带
¼öÁ¤ÇÏ¿´´Ù. ¿©±â¿¡´Ù Authentication-info¶ó°í ÇÏ´Â »õ·Î¿î Çì´õ Çʵå Çϳª°¡
DAA¸¦ À§ÇØ Ãß°¡µÇ¾ú´Ù.[2]
´ëºÎºÐÀÇ ÀÀ´ä ¸Þ½ÃÁö¿¡´Â ¿äûµÈ ´ë»ó ÀÚ¿øÀÌ entity·Î¼ Æ÷ÇԵǾî Àִµ¥
»ç¿ëÀÚ°¡ ÀνÄÇÒ ¼ö ÀÖ´Â Á¤º¸·Î Ç¥ÇöÇϱâ À§ÇØ ÀûÀýÇÑ º¯È¯ °úÁ¤À» °ÅÄ¥ ¼ö ÀÖ´Ù.
À̶§ »ç¿ëÀÚ´Â ¿äûÇÑ ¿ä±¸ ¸Þ½ÃÁöÀÇ ÁöÁ¤ »çÇ׿¡ °¡Àå 'ÀûÀýÇÑ' ÇüÅ·Π¹Þ¾Æº¸°íÀÚ
ÇÒ °ÍÀÌ´Ù.
¿¹¸¦ µé¾î, gzipÀ¸·Î ¾ÐÃàµÇ¾î ÀÖ´Â ÀÚ¿øÀ» Ŭ¶óÀÌ¾ðÆ®°¡ °®°í ¿Í¼
¾ÐÃàÀ» Ç®°í¼ ÀúÀåÇÏ°Ô ÇÒ ¼öµµ ÀÖ°í ÀûÀýÇÑ viewer·Î º¸¿©ÁÙ ¼öµµ ÀÖÀ¸¸ç
¿©·¯°¡Áö viewerµé °¡¿îµ¥ ¼±ÅÃÇÏ°Ô ÇÒ ¼öµµ ÀÖ´Ù. ¿©±â¼ °¡Àå ÀûÀýÇÏ´Ù´Â °ÍÀº
¼±È£µµ ¹®Á¦ ¶§¹®¿¡ ¸ðµç »ç¿ëÀڵ鿡°Ô ¶È°°ÀÌ Àû¿ëµÇ´Â °ÍÀº ¾Æ´Ï´Ù.
¶ÇÇÑ ¸ðµç ºê¶ó¿ìÀú°¡ ¸ðµç Á¾·ùÀÇ µ¥ÀÌŸ ÇüŸ¦ ¸ðµÎ ó¸®ÇÒ ¼ö ÀÖ´Â °Íµµ ¾Æ´Ï´Ù.
HTTP/1.1¿¡¼´Â ÇÑ °¡Áö ´ë»ó ÀÚ¿ø¿¡ ´ëÇØ ¸î °¡Áö ÇüÅÂÀÇ ¼±Åà »ç¾çÀ» Àü´ÞÇÑ´Ù.
ÀÌ °¢°¢ÀÇ ¼±Åà Á¤º¸¸¦ 'variant'¶ó°í ÇÑ´Ù. ¿¹¸¦ µé¾î ¾î¶² ¹®¼¿¡ ´ëÇØ ´ÙÀ½°ú °°ÀÌ
¼¼ °¡Áö ¼±Åà Á¶°ÇÀ» Á¦½ÃÇÒ ¼ö ÀÖ´Ù.
content negotiationÀ̶õ, ÇØ´ç ¹®¼¸¦ °®°í ¿À°íÀÚ ÇÒ ¶§ »ç¿ëÀÚÀÇ ¼±È£µµ ÁöÁ¤ »çÇ×°ú
Ŭ¶óÀ̾ðÆ®ÀÇ ¼öÇà ´É·Â¿¡ µû¶ó¼ °¡Àå ÃÖ»óÀ¸·Î ÇÕÄ¡µÇ´Â Á¶°ÇÀÇ ¹®¼¸¦ ¼±ÅÃÇÏ¿©
°¡Á®¿Í¼ »ç¿ëÀÚ¿¡°Ô º¸¿©ÁÙ ¼ö ÀÖµµ·Ï ÇÏ´Â °úÁ¤À» ¸»ÇÑ´Ù.[3]
±×·¯¹Ç·Î »ç¿ëÀÚ°¡ ¹Ù¶ó´Â ÇüÅ·ΠÁ¦°øÇϱâ À§ÇØ content negotiationÀ̶ó°í ÇÏ´Â
¸î °¡Áö ¸ÞÄ«´ÏÁòÀ» HTTP/1.1¿¡¼´Â Á¦°øÇÑ´Ù.
´ÙÀ½°ú °°Àº ¸ÞÄ«´ÏÁòÀÌ Á¦¾ÈµÇ¾î ÀÖ´Ù.[1]
À̸¦ À§ÇØ Å¬¶óÀÌ¾ðÆ®´Â Accept, Accept-Language, Accept-Encoding µîÀÇ
Çì´õ Çʵ带 ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇÔ½ÃÄѼ ¼¹ö¿¡°Ô º¸³½´Ù. ¼¹ö¸¦ À̵é Á¤º¸¸¦
º¸°í¼ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù.[1]
HTTP/1.1 ¹®¼¿Í´Â º°µµ·Î °ü¸®µÇ°í ÀÖÀ¸¸ç,
¾ÈÁ¤ÀûÀÎ »óÅ·ΠÁ¤¸®µÇ¸é HTTP/1.1 ¹®¼¿¡ µé¾î°¡°Ô µÉ °ÍÀÌ´Ù.[3]
HTTP/1.0 ±Ô°Ý¿¡¼µµ HTTP ÇÁ·ÎÅäÄÝ µ¿ÀÛ »óÀÇ µ¥ÀÌŸ ij½Ì¿¡ ´ëÇÏ¿© ´Ù·ç°í ÀÖ´Ù.
HTTP/1.1¿¡¼´Â ÀÌ ±â´ÉÀÌ º¸´Ù Àß µ¿ÀÛÇÏ°Ô Çϱâ À§ÇÑ ¸¹Àº ¿ä¼ÒµéÀÌ Ãß°¡µÇ¾ú´Âµ¥,
±× ¸ñÀûÀº ¸¹Àº °æ¿ì¿¡ ÀÖ¾î µ¥ÀÌŸ ¿äûÀ» À§ÇÑ ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö¸¦ ÁÙÀ̱â À§ÇÔÀ̰í
¶Ç ´Ù¸¥ °æ¿ìµé¿¡ ÀÖ¾î ¼¹ö°¡ º¸³»´Â ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö¸¦ ÁÙÀ̱â À§ÇÔÀÌ´Ù.
¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö¸¦ ÁÙÀÌ°Ô µÇ¸é ³×Æ®¿öÅ©ÀÇ round-tripÀÇ È½¼ö°¡ ÁÙ¾îµå´Âµ¥
À̸¦ À§ÇØ expiration ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇÑ´Ù. ¸¸¾à ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö°¡ ÁÙ¾îµé°Ô µÇ¸é
³×Æ®¿öÅ©ÀÇ bandwidth ¿ë·®À» º¸Á¸ÇÒ ¼ö ÀÖ°Ô µÇ¸ç À̸¦ À§ÇØ validation ¸ÞÄ«´ÏÁòÀ»
»ç¿ëÇÑ´Ù.
ExpirationÀ̶õ ¼¹ö°¡ ¿äû¹ÞÀº ÀÚ¿øÀ» º¸³¾ ¶§ ¸íÈ®ÇÑ À¯È¿±â°£À» Á¤Çؼ º¸³»´Â
µ¿ÀÛÀ» ¸»ÇÑ´Ù. ÀÌ ³¯ÀÚ°¡ Áö³ ÀÚ¿øÀÇ À¯È¿¼ºÀº º¸ÀåÇÏÁö ¸øÇϹǷΠ¼¹ö·ÎºÎÅÍ
»õ·Ó°Ô ¹Þ¾Æ¿Í¾ß Çϸç, À¯È¿±â°£ ³»ÀÇ ÀÚ¿øÀ̶ó¸é ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³»Áö
¾Ê´õ¶óµµ ij½ÃµÇ¾î ÀÖ´Â ÀÚ¿øÀ» Á¦°øÇÒ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù.
ValidationÀ̶õ ij½ÃµÇ¾î ÀÚ¿ø¿¡ ´ëÇÑ À¯È¿¼ºÀ» È®ÀÎÇÏ´Â °ÍÀÌ´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ
¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î¼ »ç¿ëÇÒ ¼ö Àִ ij½Ã µ¥ÀÌŸ°¡ ÀÖ´Ù¸é ¸ÕÀú ¼¹ö¿Í
ÇØ´ç µ¥ÀÌŸ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö À¯È¿¼º °Ë»ç¸¦ ÇØ¾ß ÇÑ´Ù.
¾Õ¿¡¼ ¾ð±ÞÇß´ø ¸¹Àº Çì´õ ÇʵåµéÀÌ HTTP/1.1¿¡¼ Ãß°¡µÇ¾ú´Ù. »ó¼¼ÇÑ ±â´É ¼³¸íÀº
´ÙÀ½¿¡ °³Á¤µÉ ¹®¼¿¡¼ ´Ù·çµµ·Ï Çϰí, ¿©±â¼´Â ÁÖ¸ñµÇ´Â Ư¡Àû Çʵ常
¾ð±ÞÇϵµ·Ï ÇÑ´Ù.
ÀÌ·¸°Ô Ãß°¡µÈ Çʵåµé °¡¿îµ¥
ÇϳªÀÇ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ ¿©·¯ °³ÀÇ ¼¹ö¸¦ ±¸¼ºÇÒ ¼ö ÀÖ´Â Multi-Homed ±â´ÉÀ»
ÇÁ·ÎÅäÄÝ Â÷¿ø¿¡¼ ±¸ÇöÇϵµ·Ï ÇÏ´Â °ÍÀÌ ÀÖ´Ù. HTTP/1.0¿¡¼´Â ¼¹ö ÇÁ·Î±×·¥ÀÇ
±¸Çö»ó °¡´ÉÇß´ø ±â´ÉÀ̸ç ÀÌ °æ¿ì¿¡ ÇϳªÀÇ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ Ãß°¡ÇϰíÀÚ
ÇÏ´Â ¼¹ö ȨÀÇ °¹¼ö¸¸Å IP ÁÖ¼Ò¸¦ ÁöÁ¤Çß¾î¾ß Çß´Ù. µû¶ó¼ È£½ºÆ® ÄÄÇ»ÅÍ´Â
ÇÑ ´ëÀÏÁö¶óµµ ÇÒ´çµÈ IP °¹¼ö¸¸ÅÀÇ ¼¹ö ȨÀ» ±¸¼ºÇÒ ¼ö ÀÖ¾ú´Ù.
±×·¯³ª HTTP/1.0¿¡¼´Â ÇϳªÀÇ È£½ºÆ®¿¡ ÇϳªÀÇ IP ÁÖ¼Ò¸¸ °¡Áö°íµµ ÀÌ·± ±â´ÉÀÌ
°¡´ÉÇϵµ·Ï µÇ¾î ÀÖ´Ù. ´Ù¸¸ DNS ½Ã½ºÅÛ¿¡ µî·ÏµÇ´Â ¿©·¯ °³ÀÇ À̸§ ÁÖ¼Ò´Â °°Àº
IP ÁÖ¼Ò·Î µî·ÏµÇ¾î¾ß ÇÑ´Ù. Áï, ´Ù¾çÇÑ µµ¸ÞÀÎÀÇ ´Ù¾çÇÑ À̸§ ÁÖ¼Ò¶ó ÇÒÁö¶óµµ
¸ðµÎ °°Àº IP ÁÖ¼Ò·Î µî·ÏµÇ¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
ÀÌ·± ±â´ÉÀ» ÇÏ´Â °ÍÀÌ Host¶ó°í ÇÏ´Â Çì´õ ÇʵåÀÌ´Ù. ¿¹¸¦ µé¾î,
À§¿Í °°Àº URLÀÌ ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷Ç﵃ ¶§ ¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î ±¸¼ºµÈ´Ù.
±×·¯¹Ç·Î °°Àº IP¸¦ »ç¿ëÇÏ´Â °°Àº È£½ºÆ®¶ó ÇÒÁö¶óµµ Æ÷ÇԵǾî ÀÖ´Â Host
Á¤º¸¸¦ ÅëÇØ ¾î´À ȨÀ» °¡¸®Å°´ÂÁö ¾Ë ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù.
¸ðµç HTTP entities´Â HTTP ¸Þ½ÃÁö ³»¿¡ ÀÏ·ÃÀÇ ¹ÙÀÌÆ®¿·Î¼ Æ÷ÇԵȴÙ.
µû¶ó¼ ÀÌ °¡¿îµ¥ ÀÏÁ¤ ºÎºÐÀÇ ¹ÙÀÌÆ®¸¸ ¿ä±¸ÇÏ°í ¼ºñ½º¹Þ´Â °ÍÀº ¾ÆÁÖ Æí¸®ÇÑ
±â´ÉÀÌ´Ù. À̸¦ À§ÇØ ¿øÇÏ´Â ¹ÙÀÌÆ® ¿µ¿ªÀ» Ç¥½ÃÇÏ¿© °¡Á®¿Ã ¼ö ÀÖ°Ô Çϸç,
Ãß°¡µÈ Çì´õ Çʵå´Â RangeÀÌ´Ù.
General Çì´õ¿¡ ¼ÓÇÏ´Â Çì´õ ÇʵåÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ½ÅÀÌ Áö¿øÇÒ ¼ö ÀÖ´Â
Ãß°¡ÀûÀÎ ÇÁ·ÎÅäÄÝÀÌ ¹«¾ùÀÎÁö, ¸¸¾à ¼¹ö°¡ ÇÁ·ÎÅäÄÝ º¯È¯À» ÇÒ ¼ö ÀÖ´Ù¸é
Ŭ¶óÀÌ¾ðÆ®´Â ¾î¶² ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇϰíÀÚ ÇÏ´ÂÁö Upgrade Çì´õ Çʵ带 ÅëÇØ
¼¹ö¿¡°Ô ¾Ë·Á ÁÙ ¼ö ÀÖ´Ù.
¸¸¾à ¼¹ö°¡ ÇÁ·ÎÅäÄÝ º¯È¯À» ÇÒ ¼ö ÀÖ´Ù¸é, ¼¹ö´Â ¹Ýµå½Ã
101 (Switching Protocols) ÀÀ´ä ¸Þ½ÃÁö ¼Ó¿¡ Upgrade Çʵ带 ¹Ýµå½Ã Æ÷ÇÔ½ÃÄѾß
ÇÑ´Ù. ÀÌÀÇ Çü½ÄÀº ¾Æ·¡¿Í °°´Ù.
ÀÌÀÇ ¿¹¸¦ µéÀÚ¸é ¾Æ·¡¿Í °°´Ù.
ÀÌ·¯ÇÑ Çì´õ Çʵ带 ÅëÇØ HTTP/1.1 ÇÁ·ÎÅäÄÝ¿¡¼ °³Á¤µÈ »õ·Î¿î HTTP ÇÁ·ÎÅäÄÝ·ÎÀÇ
º¯È¯À̳ª, ¶Ç´Â ´Ù¸¥ Á¾·ùÀÇ ÇÁ·ÎÅäÄÝ·ÎÀÇ º¯È¯ÀÌ ¼Õ½±°Ô °¡´ÉÇÏ°Ô µÈ´Ù.
À̶§ Upgrade Çì´õ Çʵå´Â Ŭ¶óÀÌ¾ðÆ®¿Í Ã³À½ ³ªÅ¸³ª´Â Áß°£ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ
»çÀÌ¿¡¼¿Í °°ÀÌ Áß°£ ¿¬°á¿¡¸¸ Àû¿ëµÇ±â ¶§¹®¿¡ ¸Þ½ÃÁö°¡ ¿À°¡´Â Àüü ¿¬°á¿¡ ´ëÇØ¼
Àû¿ëÇϱâ À§Çؼ´Â Upgrade Çì´õ°¡ Çʵ尡 Á¸ÀçÇÏ´Â ¸ðµç ¸Þ½ÃÁö¿¡ ´ëÇØ Connection
Çì´õ Çʵ嵵 Á¸ÀçÇÏ¿©¾ß ÇÑ´Ù.
HTTP/1.1 ´ÙÀ½ ¹öÀü¿¡¼ ³íÀÇµÉ °ÍµéÀÌ °Å·ÐµÇ°í Àִµ¥, ´ÙÀ½°ú °°Àº °ÍµéÀÌ´Ù.
HTTP ÇÁ·ÎÅäÄÝ »óÀÇ »óÅ °ü¸®´Â Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö »çÀÌ¿¡ ¿À°¡´Â ¿ä±¸ ¹× ÀÀ´ä
¸Þ½ÃÁö¿¡¼ ¿À°¡´Â »óÅ Á¤º¸¸¦ ÀϰüÀûÀ¸·Î ´Ù·ç±â À§ÇÔÀÌ´Ù. HTTP´Â stateless·Î¼
¿¬¼ÓÀûÀ¸·Î º¸³»´Â ¿ä±¸ ¸Þ½ÃÁöµé »çÀÌ¿¡ ¾Æ¹«·± °ü·Ã¼ºÀ» ºÎ¿©ÇÒ ¼ö°¡ ¾ø´Ù.
±×·¯¹Ç·Î °°Àº º¸¾È ¿µ¿ª ¼Ó¿¡ ÀÖ´Â ÀÚ¿øµéÀ» ¿¬¼ÓÀûÀ¸·Î ¿äûÇϰíÀÚ ÇÑ´Ù¸é
¸Å¹ø »ç¿ëÀÚ ÀÎÁõÀÇ °úÁ¤À» °ÅÃÄ¾ß ÇÒ °ÍÀÌ´Ù.
¿©±â¼´Â µ¿ÀÛ °³³ä¿¡ ´ëÇÑ °³·«¸¸ ¾ð±ÞÇϱâ·Î ÇÑ´Ù.
ÄíŰÀÇ ±³È¯¿¡ ÀÇÇØ »ý¼ºµÇ´Â ¼¼¼ÇÀº ´ÙÀ½°ú °°Àº Ư¼ºÀ» °¡Áø´Ù.
¾Æ·¡¿¡ ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ® »çÀÌÀÇ »óÅ Á¤º¸ ±³È¯¿¡ ´ëÇÑ ¹æ¹ý¿¡ ´ëÇØ
¼³¸íÇϵµ·Ï ÇÑ´Ù.
¼¹ö´Â ¼¼¼ÇÀ» »ý¼º½ÃŰ´Â ¿ªÇÒÀ» ÇÑ´Ù. À̸¦ À§ÇØ ¼¹ö´Â ÀÀ´ä ¸Þ½ÃÁö¿¡
Set-Cookie¶ó°í ÇÏ´Â Ãß°¡ÀûÀÎ Çì´õ Çʵ带 º¸³»µµ·Ï ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â ¼¼¼ÇÀ» Áö¼Ó½ÃŰÀÚ °áÁ¤ÇÒ °æ¿ì¿¡ ¼¹ö¸¦ ÇâÇØ ¿ä±¸ ¸Þ½ÃÁö¿¡ Cookie
Çì´õ Çʵ带 º¸³»µµ·Ï ÇÑ´Ù. ¼¹ö´Â ÀÌ Á¤º¸¸¦ ¹«½ÃÇÒ ¼öµµ ÀÖ°í ¼¼¼ÇÀÇ ÇöÀç »óŸ¦
°áÁ¤Çϱâ À§ÇØ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ¼¹ö´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô °°Àº Á¤º¸ ¶Ç´Â ´Ù¸¥
Á¤º¸¸¦ Set-Cookie Çì´õ Çʵ带 ÅëÇØ º¸³¾ ¼öµµ ÀÖ°í, ¶ÇÈç ÀüÇô ¾È º¸³¾ ¼öµµ ÀÖ´Ù.
¼¹ö°¡ ¼¼¼ÇÀ» ÇØÁ¦Çϱâ À§Çؼ´Â Max-Age=0¶õ Á¤º¸¸¦ Set-Cookie Çì´õ Çʵ忡 ½Ç¾î¼
Ŭ¶óÀÌ¾ðÆ®¿¡°Ô º¸³»¸é µÈ´Ù.
À̶§ ¼¹ö´Â ÇϳªÀÇ ÀÀ´ä ¸Þ½ÃÁö¿¡ ¿©·¯ °³ÀÇ Set-Cookie Çì´õ Çʵ带 Æ÷ÇÔ½Ãų ¼öµµ
ÀÖ´Ù. ±×·¯¹Ç·Î Áß°£ °ÔÀÌÆ®¿þÀÌ¿¡¼´Â ÀÌ·± ¿©·¯ °³ÀÇ Çì´õ Çʵ带 ÇϳªÀÇ
Çʵå·Î ÇÏ¿© º¸³¾ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
Set-Cookie Çì´õ Çʵå´Â ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
¼¹ö´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇÑ ÀÚ¿ø°ú Set-Cookie Çì´õ¿¡ ´ëÇÑ Ä³½Ì ¹®Á¦¸¦
ÇØ°áÇÏ¿©¾ß ÇÑ´Ù. ŸÀο¡°Ô º¸¿©¼´Â ¾È µÇ´Â ¹®¼³ª ´Ù¸¥ »ç¶÷µé°ú
°øÀ¯Çؼ´Â ¾È µÇ´Â Set-Cookie Á¤º¸°¡ ij½Ã·Î¼ ³²¾ÆÀ־ ¾È µÇ±â ¶§¹®ÀÌ´Ù.
¸¸¾à ´Ù¸¥ »ç¶÷µé°ú °øÀ¯Çصµ µÇ´Â Set-Cookie Çì´õ¶ó¸é ij½ÃµÇ°Ô ÇÒ ¼öµµ ÀÖ´Ù.
ÀÌ·¯ÇÑ µ¿ÀÛÀ» À§ÇØ ¼¹ö´Â ÀÀ´ä ¸Þ½ÃÁöÀÇ Çì´õ¿¡ Á¶°Ç¿¡ µû¶ó¼ Ãß°¡ÀûÀÎ
Çì´õ Çʵ带 ¼±ÅÃÀûÀ¸·Î º¸³»¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, Set-Cookie¸¦ ij½ÃµÇÁö
¾Êµµ·Ï ÇϰíÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°Àº Çì´õ Çʵ带 º¸³»¾ß ÇÑ´Ù.
¸¸¾à °³ÀÎÀû Á¤º¸¶ó¼ ÇØ´ç ÀÚ¿øÀ» ´Ù¸¥ »ç¶÷µé°ú °øÀ¯ÇÏÁö ¾Ê°Ô²û ÇÒ·Á¸é
´ÙÀ½°ú °°Àº Çì´õ Çʵ带 º¸³»¼ °øÀ¯ ij½Ã ¿µ¿ª¿¡ ij½ÃµÇÁö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®¿¡¼´Â °¢±â ´Ù¸¥ ¼¹ö·ÎºÎÅÍ Àü´ÞµÇ´Â Set-Cookie ÀÀ´äÀ» ÅëÇØ
»óÅ Á¤º¸¸¦ º°µµ·Î °ü¸®ÇÏ¿©¾ß ÇÑ´Ù. ±×·¯¹Ç·Î Set-Cookie ¼Ó¿¡ ÀÖ´Â ÁöÁ¤ »çÇ×µéÀ»
ÀûÀýÇÏ°Ô ÀνÄÇÏ¿© Àû¿ëÇÏ¿©¾ß ÇÑ´Ù.
¸î °¡Áö ºÒÀÏÄ¡ »óȲÀÌ ¹ß»ýÇÏ¸é º¸¾ÈÀ̳ª »ç»ýȰ Ä§ÇØÀÇ ¹®Á¦·Î Ŭ¶óÀÌ¾ðÆ®´Â
Äí۸¦ °ÅºÎÇÒ ¼öµµ ÀÖ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ ÇöÀç Á¸ÀçÇÏ´Â ÄíŰ¿Í °°Àº À̸§À» °®°í¼ ÀÌÀÇ DomainÀ̳ª Path°¡
¿ÏÀüÈ÷ ÀÏÄ¡ÇÒ ¶§ »õ·Î µµÂøÇÑ Äí۰¡ ±âÁ¸ÀÇ °ÍÀ» ´ëÄ¡ÇÏ°Ô µÈ´Ù. ÇÏÁö¸¸
»õ·Î µµÂøÇÑ Set-Cookie°¡ Max-AgeÀÇ °ªÀ» 0À¸·Î °¡Áú ¶§ ±âÁ¸ÀÇ °ÍÀ̳ª ÇöÀçÀÇ °ÍÀ̳ª
µÑ ´Ù »èÁ¦Çعö·Á¾ß ÇÑ´Ù. ÀÌ·± Äí۰¡ µµÂøÇÏÁö ¾Ê´Â´Ù¸é ½Ã½ºÅÛ ÀÚ¿øÀÌ Çã¿ëÇÏ´Â ÇÑ
Äí۵éÀº ÃàÀûµÈ´Ù.
±×·¯³ª Ŭ¶óÀÌ¾ðÆ®°¡ Äí۸¦ ÀúÀåÇÒ ¼ö ÀÖ´Â ÇѰ谡 ÀÖÀ¸¹Ç·Î ¿À·¡µÈ Äí۸¦ Áö¿ö¾ß
Çϴµ¥, À̶§ least-recently-used ¾Ë°í¸®ÁòÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
¸¸¾à Set-Cookie Çì´õ¿¡ Comment¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù¸é, Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ Á¤º¸¸¦
»ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â Á¤º¸ÀÇ ÇüÅ·ΠÄíŰ¿Í ÇÔ²² ÀúÀåÇÏ¿©¾ß ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ Àü¼ÛÇÏ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇØ Àû¿ëÇÒ Äí۸¦ °®°í ÀÖÀ» ¶§ ¼¹ö¿¡°Ô
ÄíŰ ¿ä±¸ Çì´õ¸¦ ´ÙÀ½¿¡ µû¶ó¼ º¸³¾ ¼ö°¡ ÀÖ´Ù.
¿©±â¼ CookieÀÇ ±¸¼º Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
HTTP ¸Þ½ÃÁö´Â Ãß°¡ÀûÀÎ Çì´õ Çʵ峪 ³»¿ë Çü½ÄÀÇ Ç¥ÇöÀ» ÅëÇØ È®ÀåÀÌ °¡´ÉÇÏ´Ù.
Áö±Ý±îÁö ÀÌ·± ¹æ½ÄÀ¸·Î ÇÁ·ÎÅäÄÝ ±â´ÉÀÇ °³¼±ÀÌ ÀÌ·ç¾îÁ® ¿Ô±âµµ ÇÏ´Ù. ±×·¯³ª
ÀÌ·¯ÇÑ ¹æ½ÄÀº, ÇÑ ½ÖÀÇ Å¬¶óÀÌ¾ðÆ®¿Í ¼¹ö »çÀÌ¿¡¼¸¸ ÀÌ·ç¾îÁú ¾î¶² ±â´É È®Àå¿¡¼
ºÎÅÍ ÀüüÀûÀ¸·Î ¾²ÀÏ ¼ö ÀÖ´Â ±â´É È®Àå¿¡ À̸£±â±îÁö ´Ù¾çÇÑ ¿ä±¸¿Í Çʿ信 ÀÇÇØ
¸¸µé¾îÁú ¼ö ÀÖ´Â ±â´É È®Àå¿¡´Â ¾î·Á¿òÀÌ ÀÖ´Â ¹æ½ÄÀÌ´Ù. ÀÌ·¯ÇÑ HTTP ÇÁ·ÎÅäÄÝ¿¡
´ëÇÑ ÀÓÀÇÀûÀÎ ±â´É È®ÀåÀ» À§Çؼ´Â ´ÙÀ½°ú °°Àº ¹®Á¦Á¡µéÀÌ Á¸ÀçÇÑ´Ù.
ÀÌ·¯ÇÑ ¹®Á¦Á¡µé¿¡ ´ëÇÑ ÇØ°áÃ¥À» Á¦½ÃÇϱâ À§ÇÑ ½Ãµµ·Î¼ ¸î °³ÀÇ Çì´õ À̸§°ú
content-typeÀ¸·Î¼ PEP (Protocol Extension Protocol)ÀÇ °³³äÀ» Á¦¾ÈÇÏ°Ô µÇ¾ú´Ù.
À̰ÍÀ» ÀÌ¿ëÇÔÀ¸·Î½á HTTP ÇÁ·Î±×·¥µéÀº ¾Ë·ÁÁø È®Àå ±â´ÉµéÀÌµç ¾Ë·ÁÁöÁö ¾ÊÀº
È®Àå ±â´ÉµéÀ̵ç ÀûÀýÇÏ°Ô µ¿ÀÛÇÒ ¼ö ÀÖÀ¸¸ç, ¾çÂÊ¿¡ °¡´ÉÇÑ ÇÁ·ÎÅäÄÝ È®Àå ±â´ÉÀ»
¼±ÅÃÇÒ ¼ö ÀÖ°í, ƯÁ¤ÇÑ ¼öÇà ´É·Â¿¡ ´ëÇØ »ó´ë¹æ¿¡¼ ¹°¾îº¼ ¼öµµ ÀÖ°Ô µÈ´Ù.
À̸¦ À§ÇØ ´ÙÀ½°ú °°Àº ³× °¡Áö Çì´õ Çʵ带 »ç¿ëÇÑ´Ù.
À§¿¡ ÀÖ´Â Protocol Çì´õ¸¦ ÀÌ¿ëÇÏ¿© È®Àå ±â´ÉÀÇ À̸§, Àû¿ë ¹üÀ§, Á߿䵵,
¶Ç´Â °ü·ÃÇÑ µ¥ÀÌŸ Çì´õµéÀ» ³ªÅ¸³¾ ¼ö ÀÖ°í, Protocol-Request Çì´õ Çʵ带
ÀÌ¿ëÇÏ¿© »ó´ë¹æ¿¡°Ô ƯÁ¤ È®Àå ±â´ÉÀ» »ç¿ëÇÏ°Ô ¿äûÇÒ ¼ö ÀÖÀ¸¸ç,
Protocol-Query Çì´õ Çʵ带 ÀÌ¿ëÇÏ¿© »ó´ë¹æ¿¡°Ô ƯÁ¤ È®Àå ±â´ÉÀÌ
Áö¿øµÇ´ÂÁö¿¡ ´ëÇØ ¹°¾îº¼ ¼ö ÀÖ°í, Protocol-Info Çì´õ Çʵ带
ÀÌ¿ëÇÏ¿© ¾î¶² »çÇ×µéÀÌ Áö¿øµÇ´ÂÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÙ ¼ö ÀÖ°Ô µÈ´Ù.
HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛÀº ´ÙÀ½ÀÇ ³× °¡Áö °úÁ¤¿¡ ÀÇÇØ ÀÌ·ç¾îÁø´Ù.
ÀÌ·¯ÇÑ µ¿ÀÛ °úÁ¤ ¼Ó¿¡¼ Ŭ¶óÀÌ¾ðÆ®³ª ¼¹ö °¢°¢Àº ProtocolÀ̳ª
Protocol-Request ¸Þ½ÃÁö¸¦ Àü´ÞÇϰí, Protocol-Info·Î¼
°ü·Ã Á¤º¸¸¦ ÀÀ´äÀ¸·Î º¸³»°í, Protocol-Query¸¦ ÅëÇØ »ó´ë¹æ¿¡°Ô
¹°¾îº¸´Â µ¿ÀÛÀ» ÃëÇϱ⵵ ÇÑ´Ù.
ÀÌ·¯ÇÑ ÇÁ·ÎÅäÄÝ È®Àå µ¿ÀÛÀº ¾î¶² ¼¹ö³ª ¾î¶² ¿¬°á¿¡ ´ëÇØ Àû¿ëµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó
¾î¶² ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëµÇ´Â °ÍÀÌ´Ù. Áï, HTTP ¸Þ½ÃÁöÀÇ Request-URI¿¡
¸í½ÃµÇ¾î ÀÖ´Â ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëÇÏ´Â »çÇ×ÀÌ´Ù. À̶§ È®Àå ±â´É¿¡ ´ëÇÑ
ÆÄ¶ó¹ÌÅÍ Çù»ó µ¿ÀÛµµ °¡´ÉÇÏ´Ù.
PEP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ¿¡ ¹Ýµå½Ã µé¾î°¡¾ß ÇÏ´Â Çì´õ´Â
Protocol°ú Protocol-Request µÎ °¡ÁöÀ̸ç,
¼±ÅÃÀûÀ¸·Î »ç¿ë °¡´ÉÇÑ °ÍÀÌ Protocol-Query¿Í
Protocol-Info µÎ °¡ÁöÀ̰í, ³× °¡Áö ¸ðµÎ General Çì´õ¿¡ µé¾î°¡´Â
ÇʵåµéÀÌ´Ù. °¢°¢ÀÇ Ç¥Çö½ÄÀº ¾Æ·¡¿Í °°´Ù.
¿©±â¼ bagÀº ¾Æ·¡¿Í °°Àº ¸î °¡Áö º¯¼öµéÀ» °¡Áø´Ù.
ÀÌ»ó°ú °°Àº °ÍÀ» ÅëÇØ PEPÀ» ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°Àº Çù»ó ³»¿ëÀ» Àü´ÞÇÒ ¼ö ÀÖ´Ù.
ÀÌ¿Í °°Àº Çù»ó ¶Ç´Â ÁÖ°í ¹Þ´Â ¸Þ½ÃÁöÀÇ °úÁ¤¿¡¼ ù ¹øÂ°·Î ÀϾ ¼ö ÀÖ´Â °ÍÀº
»ó´ë¹æÀÌ ÀÏ´Ü ¾î¶² È®Àå ±â´ÉÀ» Á¦°øÇÏ´ÂÁö ¾Ê´ÂÁö ¹°¾îº¸´Â ÀÏÀÏ °ÍÀÌ´Ù.
Protocol-Query Çì´õ Çʵå´Â ¾î´À ÇÑ ÂÊÀÌ ´Ù¸¥ ÇÑ ÂÊ¿¡°Ô ¾î´À ƯÁ¤
ÇÁ·ÎÅäÄÝ È®ÀåÀ» Áö¿øÇÏ´ÂÁö ¹°¾îº¼ ¼ö ÀÖ°Ô Çϰí, ÀÌ¿¡ ´ëÇÑ ÀÀ´äÀº
Protocol-Info ÀÀ´ä Çì´õ Çʵå·Î µ¹¾Æ¿À°Ô µÈ´Ù.
query Çì´õ´Â opt·Î ±âº» ¼³Á¤µÇ´Â Àû¿ë ¹üÀ§¸¸ ¸í½ÃÇϵµ·Ï ÇÑ´Ù.
¿Ö³ÄÇϸé query´Â Ç×»ó ´õ ÀÌ»óÀÇ Á¤º¸¸¦ ¼±ÅÃÀûÀ¸·Î ¿äûÇϱâ À§ÇØ ¹°¾îº¸±â
¶§¹®ÀÌ´Ù. ÇÏÁö¸¸, query¸¦ Áö¿øÇÏ´Â °ÍÀº ¼±ÅÃÀûÀÎ °ÍÀ̱⠶§¹®¿¡
´äÀ» ¿ä±¸ÇÒ ¼öµµ ¾ø°í °ÅÀýÇÒ ¼öµµ ¾ø´Ù.
¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ ¾î´À ÇÁ·ÎÅäÄÝ È®ÀåÀÌ Æ¯Á¤ URI ÀÚ¿ø¿¡ ´ëÇØ Áö¿øµÉ °ÍÀ̶ó°í »ý°¢ÇÑ´Ù¸é,
ÇØ´ç URI¿¡ ´ëÇØ¼ (for ¸ñ·Ï¿¡ ¾Æ¹« °Íµµ ¾øÀ½) ¶Ç´Â ¼¹ö Àüü¿¡ ´ëÇØ¼
({for /*}) È®Àå ±â´ÉÀÌ Áö¿øµÇ´ÂÁö È®ÀÎÇϱâ À§ÇØ Protocol-Query Çì´õ¸¦
¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇÔ½ÃÄѼ º¸³½´Ù.
À̶§ Ŭ¶óÀÌ¾ðÆ®´Â ´Ù¸¥ HTTP ¸Þ½ÃÁö¿¡ Protocol-Query Çì´õ¸¦ ÷ºÎÇÏ¿©
º¸³»±â À§ÇØ Àá½Ã ±â´Ù¸± ¼öµµ ÀÖ°í, query Çì´õ Çʵ带 OPTIONS method¸¦ °¡Áø
¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇÔ½ÃÄѼ º¸³¾ ¼öµµ ÀÖ´Ù.
query¸¦ ¼ö½ÅÇÏ´Â Áï½Ã agent´Â È®Àå ±â´ÉÀÌ Áö¿øµÇ´ÂÁö È®ÀÎÀ» Çϰí,
ÁöÁ¤µÇ¾î ÀÖ´Â ¼³Á¤ »çÇ×µéÀÌ ÇØ´ç URI¿¡ ¸ðµÎ¿¡ ´ëÇØ ¼ö¿ëÇÒ ¼ö ÀÖ´ÂÁö °ÅÀýÇØ¾ß ÇÒ
°ÍÀÎÁö¿¡ ´ëÇÑ ÀÀ´äÀ» º¸³»¾î¾ß Çϴµ¥, ÃÖÁ¾ °á°ú¸¦ ÀÀ´äÀ¸·Î º¸³»±â À§ÇØ ÁغñÇÑ´Ù.
¼¹ö´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³¾ »Ó¸¸ ¾Æ´Ï¶ó ÀÀ´ä¿¡ ÀÖ¾î¼ÀÇ ÀÚ½ÅÀÇ Áú¹®(queries)µµ ÇÔ²²
º¸³¾ ¼ö ÀÖ´Ù.
Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞµÇ´Â ÀÀ´äÀº Protocol-Info Çì´õÀÇ ÇüÅ·ΠµÇ¾î ÀÖ´Ù.
¼¹ö°¡ ÀÚ½ÅÀÇ queries¸¦ Æ÷ÇÔ½ÃÄ×À» ¼öµµ ÀÖÀ¸¹Ç·Î Ŭ¶óÀÌ¾ðÆ®´Â °á°ú¸¦ º¸³»ÁÖ¾î¾ß
Çϸç, queryÀÇ Àû¿ë ¹üÀ§¿Í ÀÏÄ¡ÇÏ´Â URI¿¡ ´ëÇØ ¸¸µç HTTP ¿ä±¸ ¸Þ½ÃÁö ¼Ó¿¡ Æ÷ÇÔ½ÃÄÑ
º¸³½´Ù. ÀÌ·¯ÇÑ µ¿ÀÛÀ» ÅëÇØ ºÎ¼öÀûÀÎ È¿°ú·Î¼ Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö¿¡°Ô call backÀ»
°¡´ÉÇÏ°Ô ÇÒ ¼öµµ ÀÖ´Ù.
Çù»ó °úÁ¤¿¡ ÀÖ¾î¼ÀÇ µÎ ¹øÂ° ´Ü°è·Î¼ ÇÑ ÂÊÀº ÁÖ¾îÁø È®Àå ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ
ÀϹæÀûÀÎ °ÍÀÌµç ¾Õ¼ query¿¡ ´ëÇÑ ÀÀ´äÀ̵ç {¿ä±¸ÇÑ´Ù | Çã¿ëÇÑ´Ù | ±ÝÁöÇÑ´Ù}´Â °ÍÀ»
¹àÈú ¼ö ÀÖ´Ù. Protocol-Info Çì´õ´Â ¾î´À agent°¡ ´Ù¸¥ agent¿¡°Ô
ƯÁ¤ È®Àå ÇÁ·ÎÅäÄÝÀÌ Áö¿øµÇ´ÂÁö ¾È µÇ´ÂÁö ¾Ë·ÁÁÙ ¼ö ÀÖ°Ô ÇÑ´Ù.
Protocol-Info´Â Protocol-Query¿¡ ´ëÇØ ¹Ýµå½Ã ¼ö¹ÝµÇ´Â Çì´õ
ÇʵåÀÌ´Ù. À̸¦ ÅëÇØ ÀÏÄ¡µÇ´Â ¸ðµç URIµé¿¡ ´ëÇØ ÇØ´ç ÇÁ·ÎÅäÄÝÀÌ ÇÊ¿äÇÑÁö
Çã¿ëµÇ´ÂÁö ±ÝÁöµÇ¾î ÀÖ´ÂÁö ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù.
À̰ÍÀº Ŭ¶óÀÌ¾ðÆ®°¡ Protocol-Info¸¦ º¸³»´Â »óȲÀÌ´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â ¾Õ¼ ¼¹öÀÇ query ¿ä±¸¿¡ ´ëÇØ Protocol-Info¸¦ º¸³¾ ¼ö ÀÖ°í,
¶Ç´Â ¾Ë¸®°íÀÚ ÇÏ´Â »çÇ×À» ÀϹæÀûÀ¸·Î ½Ç¾î¼ º¸³¾ ¼öµµ ÀÖ´Ù.
À̰ÍÀº Protocol-Info Çì´õ¸¦ °¡Áø ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼¹ö°¡ ¼ö½ÅÇÑ »óȲÀÌ´Ù.
¼¹ö´Â µµÂøÇÑ Protocol-Info·ÎºÎÅÍ Å¬¶óÀ̾ðÆ®ÀÇ ¼öÇà ´É·Â°ú °°Àº
ÀûÀýÇÑ Á¤º¸µéÀ» È®º¸ÇØ µÎ¾î¾ß ÇÑ´Ù. ÀÌ Á¤º¸´Â 3.5.3Àý°ú 3.6.3Àý¿¡¼ Áß¿äÇϰÔ
Ȱ¿ëµÈ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ ¾Õ¼ÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡¼ ¿äûÇß´Ù¸é ¼¹ö´Â Protocol-Info
Çì´õ Çʵ带 Æ÷ÇÔ½ÃÄÑ ÀÀ´äÇÏ¿©¾ß Çϰí, ¶Ç´Â ¼¹ö°¡ ÀϹæÀûÀ¸·Î Á¤º¸¸¦ ¾Ë¸± ¼öµµ
ÀÖ´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â ¼¹öÀÇ ¼öÇà ´É·Â°ú °°Àº ÀûÀýÇÑ Á¤º¸µéÀ» È®º¸ÇØ µÎ¾î¾ß ÇÑ´Ù.
ÀÌ Á¤º¸´Â 3.5.1Àý°ú 3.6.1Àý¿¡¼ Áß¿äÇÏ°Ô ¾²ÀδÙ.
Çù»ó °úÁ¤¿¡ ÀÖ¾î¼ÀÇ ¼¼ ¹øÂ° ´Ü°è·Î¼ »ó´ë¹æ¿¡°Ô ¾î¶² È®Àå ÇÁ·ÎÅäÄÝÀÇ »ç¿ëÀ»
½ÃÀÛÇϵµ·Ï Á÷Á¢ÀûÀ¸·Î ½Ãų ¼öµµ ÀÖ°í ±ÝÁö½Ã۰Եµ ÇÒ ¼ö ÀÖ´Ù.
Protocol-RequestÀº ¾î´À agent°¡ ´Ù¸¥ agent¿¡°Ô ƯÁ¤ È®Àå ±â´ÉÀ»
½ÃÀÛÇÏ°Ô ¸¸µé ¼ö ÀÖµµ·Ï Çϰí, ±× ÀÀ´äÀ¸·Î Protocol ¹Þ¾Æ¾ß ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ ¼¹ö¿¡°Ô ¾î´À ƯÁ¤ È®Àå ±â´ÉÀ» ½ÃÀÛÇÏ°Ô ÇϰíÀÚ ÇÑ´Ù¸é
ÇØ´ç È®Àå ±â´ÉÀÌ µ¿ÀÛÇÒ °ÍÀÎÁö °Ë»çÇϱâ À§ÇØ ÀúÀåµÇ¾î ÀÖ´Â
Protocol-Info Á¤º¸¸¦ »ìÆìº»´Ù. Protocol-Request´Â
¿øÇÏ´Â ÇÁ·ÎÅäÄÝÀ» ¸í½ÃÇϱâ À§ÇØ »ç¿ëµÇ´Â °ÍÀÌ¸ç ¼ö½ÅÃøÀÌ ¼±ÅÃÇÒ ¼ö
ÀÖ°Ô²û ÆÄ¶ó¹ÌÅÍ °ªÀÇ ¹üÀ§¸¦ Àü´ÞÇÑ´Ù.
¼¹ö´Â ¼ö½ÅÇÑ È®Àå ÇÁ·ÎÅäÄÝ ¿ä±¸°¡ ÀûÀýÇÑÁö °Ë»ç¸¦ ÇØ¾ß ÇÑ´Ù. ¸¸¾à
¼º°øÀûÀ̶ó¸é ¼¹ö´Â ¸í½ÃµÈ È®Àå ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇϱ⠽ÃÀÛÇØ¾ß ÇÑ´Ù.
¸¸¾à ½ÇÆÐ¶ó¸é Protocol-Request Çì´õ¿¡ {str ref}¸¦
½Ç¾î¼ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô º¸³½´Ù. óÀ½¿¡ ¼ö½ÅÇß´ø request Çì´õ°¡
{str req} ÆÄ¶ó¹ÌÅ͸¦ °®°í ÀÖ¾ú´Ù¸é ÇØ´ç request µ¿ÀÛÀÌ
½ÇÆÐÇßÀ½À» ³ªÅ¸³½´Ù.
¼¹ö´Â ¸í½ÃµÈ ÇÁ·ÎÅäÄÝÀÇ »ç¿ëÀ» ½ÃÀÛÇϵçÁö ±ÝÁöÇϵçÁö ÇÔÀ¸·Î½á È®Àå ÇÁ·ÎÅäÄÝ¿¡
´ëÇÑ ¿ä±¸/¼ö¿ë/±ÝÁö µîÀÇ ÀÀ´äÀ» º¸³»¾î¾ß ÇÑ´Ù. ÀÌ¿¡ µû¶ó ¼¹ö´Â
Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¾î´À URI¿¡ Á¢±ÙÇÒ ¶§ È®Àå ÇÁ·ÎÅäÄÝÀ» ½ÃÇàÇϵµ·Ï ÀÚ½ÅÀÇ
¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â ¼¹öÀÇ °¢ Protocol-Request¸¦ Á¡°ËÇØ º¸¾Æ¾ß Çϴµ¥,
¸¸¾à À¯È¿ÇÑ °ÍÀ̶ó ÆÇ´ÜµÇ¸é ¼¹ö Protocol-Request for ¸ñ·Ï°ú
ÀÏÄ¡ÇÏ´Â ¸ðµç URI¿¡ Á¢±ÙÇÒ ¶§ ¸í½ÃµÈ È®Àå ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï
ÁغñÇÏ¿©¾ß ÇÑ´Ù.
Çù»ó °úÁ¤¿¡ ÀÖ¾î ¸¶Áö¸· ÀýÂ÷·Î¼ ¾î¶² È®Àå ÇÁ·ÎÅäÄÝÀÌ °ð¹Ù·Î »ç¿ëµÉ ¼ö ÀÖ´Ù.
ProtocolÀº ¾î´À agent¿¡°Ô ƯÁ¤ È®Àå ÇÁ·ÎÅäÄÝÀÌ ÇöÀçÀÇ ¸Þ½ÃÁö¿¡
¾²À̰í ÀÖ´ÂÁö ¾Ë·ÁÁÙ ¼ö ÀÖ´Â ¼ö´ÜÀ» Á¦°øÇÑ´Ù. ÀÀ´ä ¸Þ½ÃÁö¿¡¼´Â ÀÌ È®ÀåÀ»
°è¼Ó »ç¿ëÇÒ ¼ö ÀÖ´Ù.
Ŭ¶óÀÌ¾ðÆ®¿¡¼´Â ÇöÀçÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇØ ¾î´À È®Àå ÇÁ·ÎÅäÄÝÀ» Àû¿ëÇØ¾ß ÇÒÁö
°áÁ¤ÇÏ¿©¾ß ÇÑ´Ù. Àû¿ëÇÒ ¼ö ÀÖ´Â °¢°¢¿¡ ´ëÇØ º°µµÀÇ Protocol-Request·Î
ÀÀ´äÇÏ¿©¾ß Çϰí, À̷νá Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö°¡ ÇØ´ç request-URI¿¡ ÀÌ¹Ì »ç¿ëÇϰí ÀÖ´Â
È®Àå ÇÁ·ÎÅäÄÝÀ» °è¼Ó »ç¿ëÇÒ ¼ö Àְųª, ¶Ç´Â ´Ù¸¥ È®Àå ÇÁ·ÎÅäÄÝµé ½ÃÀÛÇÒ ¼ö ÀÖ°Ô
ÇÒ ¼ö ÀÖ´Ù. °¢ È®Àå ÇÁ·ÎÅäÄÝÀÌ Àû¿ëµÇ±â ¶§¹®¿¡ Ãß°¡µÈ Çì´õµéÀº Protocol
·ÎºÎÅÍ ¼ø¼´ë·Î Ȱ¿ëµÉ ¼ö ÀÖ°Ô µÈ´Ù.
¼¹ö´Â °¢ È®Àå ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ Protocol Çì´õ¿¡ ³ª¿µÇ¾î ÀÖ´Â ¼ø¼¿¡
µû¶ó¼ Á¡°ËÇØ º¸¾Æ¾ß ÇÑ´Ù. ¼¹ö°¡ °¢ ÇÁ·ÎÅäÄÝÀ» Á¡°ËÇϱ⠶§¹®¿¡ ¼¹ö´Â Àá½Ã
Áß´ÜÇÏ¿© HTTP ¿À·ù »óÅ Äڵ带 º¸³¾ ¼öµµ ÀÖ´Ù.
¼¹ö´Â Ŭ¶óÀÌ¾ðÆ®°¡ ¿äûÇÑ ÇÁ·ÎÅäÄÝµé °¡¿îµ¥ ÀûÀýÇÑ °ÍÀº ¼±ÅÃÇÏ¿©¾ß ÇÑ´Ù.
¹®Á¦°¡ »ý±â¸é ¿À·ù »óÅ Äڵ带 º¸³½´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â °¢ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ Protocol Çì´õ¿¡ ³ª¿µÇ¾î ÀÖ´Â ¼ø¼¿¡
µû¶ó¼ Á¡°ËÇØ º¸¾Æ¾ß ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â °¢ È®Àå ÇÁ·ÎÅäÄÝÀ» Á¡°ËÇϱ⠶§¹®¿¡
¿©·¯°¡Áö ÀÌÀ¯·Î ÇØ¼ ½ÇÆÐÇÒ ¼öµµ ÀÖ´Ù. À̶§ º¹±¸ ¹æ¹ýÀÇ Çϳª·Î¼
±ÝÁöÇÏ´Â È®Àå ÇÁ·ÎÅäÄÝÀ» Protocol-Request Çì´õ¿¡ ½Ç¾î¼ º¸³¾ ¼ö ÀÖ´Ù.
È®Àå ÇÁ·ÎÅäÄÝÀ» ÅëÇØ »ý±â´Â ¿À·ù¸¦ »ç¿ëÀÚ¿¡°Ô ¾Ë·ÁÁְųª log·Î¼ ÀúÀåÇØ¾ß ÇÑ´Ù.
½ÇÁ¦ÀûÀÎ Á¤º¸½Ã½ºÅÛ¿¡¼´Â °Ë»ö, Á¤º¸ °»½Å, ¹× ÁÖ¼® µî°ú °°Àº °£´ÜÇÑ ÀÛ¾÷º¸´Ù´Â º¸´Ù ´Ù¾çÇÑ
±â´ÉÀ» ÇÊ¿ä·Î Çϰí ÀÖ´Ù. ¶ÇÇÑ ºÐ»ê ȯ°æ, °øµ¿ÀÛ¾÷ ȯ°æ, ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸½Ã½ºÅÛ µîÀÇ »óȲ¿¡¼
ÇÊ¿ä·Î ÇÏ´Â ¼Óµµ¿Í °£Æí¼ºÀ» Á¦°øÇϱâ À§ÇÑ ÇÁ·ÎÅäÄÝÀÌ ÇÊ¿äÇÏ°Ô µÇ¾ú°í À̸¦ ¸ñÀûÀ¸·Î HTTP
ÇÁ·ÎÅäÄÝÀÌ ¼³°èµÇ¾ú´Ù.
HTTP ÇÁ·ÎÅäÄÝÀº ¿ä±¸/ÀÀ´ä (Request/Response) ¹æ½ÄÀ» ÀÌ¿ëÇÏ¿© µ¿ÀÛÇϰí ÀÖ´Ù. Áï,
¿øÇÏ´Â ÇÁ·ÎÅäÄÝ ±â´É(¿¹: GET, DELETE, POST, HEAD, etc.)¿¡ ´ëÇØ ¼ºñ½º ¿ä±¸¸¦ Çϸé
µ¥ÀÌŸ Åë½ÅÀ» À§ÇÑ TCP ¿¬°áÀÌ ¸¸µé¾îÁö°í ¼¹ö°¡ ÀÀ´äÀ» º¸³»¾î µ¥ÀÌŸ
Àü¼ÛÀ» ³¡³»¸é ÀÚµ¿ÀûÀ¸·Î ¿¬°áÀÌ ²÷¾îÁö°Ô µÇ´Â °ÍÀÌ´Ù.
FTP ÇÁ·ÎÅäÄÝÀÇ °æ¿ì ÇϳªÀÇ ÈÀÏÀ» ¼Û½Å ¶Ç´Â ¼ö½ÅÇÏ°í ³ ´ÙÀ½¿¡µµ ±× ¿¬°áÀº ²÷¾îÁöÁö ¾Ê¾Æ
¶Ç ´Ù¸¥ ¿ä±¸¸¦ ÇÒ ¼ö ÀÖÁö¸¸, HTTP ÇÁ·ÎÅäÄÝÀÇ °æ¿ì¿¡´Â ´Ù½Ã ¿¬°áÀ» ¸¸µé¾î ¿ä±¸ÇØ¾ß ÇÏ´Â
¹æ½ÄÀÌ´Ù.[Simon5]
HTTPÀÇ Request Çü½ÄÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. ù ¹øÂ° Á٠óÀ½¿¡ ¾î¶² ±â´ÉÀ» ÀÌ¿ëÇÏ·Á´ÂÁö
ÁöÁ¤À» ÇÑ´Ù. °¡Àå ÀϹÝÀûÀ¸·Î ¾²À̰í ÀÖ´Â °ÍÀÌ GET ÀÌ´Ù. À̰ÍÀº ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô
¹®¼¸¦ º¸³»´Þ¶ó°í ¿äûÇÏ´Â °ÍÀÌ´Ù. ±× ´ÙÀ½¿¡´Â ÈÀÏ À̸§Ã³·³ ´ë»óÀÌ µÇ´Â °ÍÀ»
ÁöÁ¤Çϰí ÇöÀç ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù.
ÀÌ ´ÙÀ½¿¡´Â ÀÏ·ÃÀÇ ÁöÁ¤ »çÇ×µéÀ» µ¡ºÙÀÏ ¼ö°¡ ÀÖÀºµ¥, ¿¹¸¦ µé¾î ºê¶ó¿ìÀúÀÇ Á¾·ù³ª
ºê¶ó¿ìÀú°¡ ´Ù·ê ¼ö ÀÖ´Â µ¥ÀÌŸ Çü½Ä µîÀÌ´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.
HTTP¿¡¼ÀÇ ÀÀ´ä Çü½Äµµ ¾ÆÁÖ °£´ÜÇÏ°Ô ±¸¼ºµÇ¾î ÀÖ´Ù. ¼¹ö¿¡¼ ¾²À̰í ÀÖ´Â
ÇÁ·ÎÅäÄÝ ¹öÀü, Request¿¡ ´ëÇÑ ½ÇÇà °á°ú, Àü´ÞÇØÁÙ µ¥ÀÌŸÀÇ Çü½Ä, µ¥ÀÌŸ
±æÀÌ µî°ú °°Àº Ãß°¡ÀûÀÎ Á¤º¸°¡ Àü´ÞµÇ°í, ÀÌ·¯ÇÑ Çì´õ Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â
ºóÁÙÀÌ µé¾î°¡°í, µÚÀÌ¾î ½ÇÁ¦ µ¥ÀÌŸ°¡ Àü´ÞµÈ´Ù. µ¥ÀÌŸ Àü´ÞÀÌ ³¡³ª¸é
¼¹ö´Â ¿¬°áÀ» ²÷´Â´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ ¿ä±¸/ÀÀ´ä ¹æ½ÄÀº ³ª¸§´ë·Î Àå´ÜÁ¡À» °®°í ÀÖ´Ù. URL (Uniform Resource Locator)À»
ÀÌ¿ëÇÑ ÇÏÀÌÆÛ¸µÅ©·Î ±¸¼ºµÇ¾î ÀÖ´Â HTML ¹®¼¿¡¼´Â °¢Á¾ ÇÁ·ÎÅäÄݰú È£½ºÆ® À̸§À»
ÁöÁ¤ÇÏ¿© ¹®¼ ¿äûÀ» À§ÇÑ ¿¬°áÀ» ¸¸µé¾î µ¥ÀÌŸ¸¦ °®°í ¿Ã ¼ö ÀÖ´Ù. FTPÀÇ °æ¿ì¿¡¼Ã³·³ ÇϳªÀÇ
È£½ºÆ®¿¡ ¿À·¡ ¿¬°áÀ» ¸Î°í¼ ¿©·¯ °¡Áö ¹®¼µéÀ» °®°í ¿À´Â °ÍÀÌ ¾Æ´Ï¶ó ÇÏÀÌÆÛÅØ½ºÆ® ¹®¼¿¡ ÀÖ´Â
ÇÏÀÌÆÛ¸µÅ©¸¦ ÅëÇØ ÀüÇô ´Ù¸¥ È£½ºÆ®¿¡ Á¢¼ÓÇÏ¿© ¹®¼¸¦ ¿äûÇÒ ¼ö Àֱ⠶§¹®¿¡ ¿¬°áÀÌ Áö¼ÓÀûÀ¸·Î
À¯ÁöµÇ´Â ¹æ½Äº¸´Ù´Â ¿ä±¸/ÀÀ´äÀÇ ¹æ½ÄÀ¸·Î µ¿ÀÛÇÏ´Â °ÍÀÌ º¸´Ù È¿À²ÀûÀÌ°Ô µÈ´Ù.
ÇÏÁö¸¸ ¸¹Àº °æ¿ì¿¡ °®°í ¿À´Â µ¥ÀÌŸ´Â °°Àº Àå¼Ò¿¡ ÀÖ´Â °ÍÀÌ´Ù. µû¶ó¼
°°Àº È£½ºÆ®¿¡¼ ¿©·¯°¡Áö ¹®¼¸¦ °®°í ¿Ã·Á°í ÇÑ´Ù¸é °¢°¢ÀÇ ¹®¼¸¶´Ù º°µµÀÇ TCP
¿¬°áÀ» ¸¸µé°í ÀÌ °úÁ¤¿¡¼ Ãß°¡ÀûÀÎ ºÎ´ãÀÌ »ý±â°Ô µÈ´Ù. FTPÀÇ °æ¿ì¿¡´Â ÇÑ ¹ø ¸Î¾îÁø
¿¬°áÀ» ÅëÇØ¼ ¿©·¯ ¹ø ¹®¼ ¿äûÀ» ÇÏ¸é µÇÁö¸¸ HTTP ÇÁ·ÎÅäÄÝ¿¡¼´Â ¹®¼¸¶´Ù °¢°¢ÀÇ ¿¬°áÀ»
¸¸µé¾î¾ß ÇÏ´Â Ãß°¡ÀûÀÎ ºÎ´ãÀÌ ¹ß»ýÇÏ´Â °ÍÀÌ´Ù. µû¶ó¼ °°Àº Àå¼Ò¿¡¼ ¸¹Àº ¹®¼¸¦ °®°í
¿Ã·Á°í ÇÒ ¶§ HTTP ÇÁ·ÎÅäÄÝÀº ¼º´É»óÀÇ ÀúÇϸ¦ ¹ß»ý½Ã۰í ÀÖ´Â °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ ¹®Á¦Á¡À» ÇØ°áÇϰí, On-Line ¼îÇΰú °°Àº »ó¾÷ÀûÀÎ ÀÀ¿ëµéÀ» ¿°µÎ¿¡ µÐ ±â´ÉµéÀ»
º¸¿ÏÇÏ¿©
»õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇϰíÀÚ Çϰí ÀÖ´Ù. À̰ÍÀº µÎ °¡Áö ¹æ½ÄÀ¸·Î ÁøÇàµÇ°í Àִµ¥
ÇöÀçÀÇ ÇÁ·ÎÅäÄÝÀ» º¸¿ÏÇÏ´Â ¹æ¹ýÀÌ ÇϳªÀÌ°í ¾Æ¿¹ »õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇØ¼ ±âÁ¸ÀÇ
HTTP ÇÁ·ÎÅäÄÝÀ» ´ëüÇÏ´Â ¹æ¹ýÀÌ ³ª¸ÓÁö ÇÑ °¡ÁöÀÌ´Ù. HTTP-NG¶õ ¸íĪÀº ±âÁ¸ÀÇ HTTP
ÇÁ·ÎÅäÄÝÀ» ´ëüÇÏ´Â »õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇϰíÀÚ ÇÏ´Â °ÍÀÌ´Ù.[Simon1][Simon2]
HTTP´Â ÀÎÅͳݿ¡¼ °¡Àå ºü¸£°Ô ¼ºÀåÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. ±¸ÇöÇϱ⵵ ¼Õ½¬¿ì¸ç
Áö±Ý ÀÌ ¼ø°£¿¡µµ ¾öû³ ¾çÀÇ µ¥ÀÌŸ°¡ ÀÌ ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ Àü¼ÛµÇ°í ÀÖ´Ù. ÀÌ·¸°Ô
Àß µ¿ÀÛÇϰí ÀÖÀ½¿¡µµ HTTP¸¦ ´ëüÇÏ´Â »õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇϰíÀÚ ÇÏ´Â °ÍÀº
¾Õ¼ ¸»ÇÑ ¼º´É»óÀÇ ¹®Á¦¿Í »ç¿ëÀÚ È®ÀÎ ¹× »ç¿ë·á ¡¼ö µî°ú °°Àº ¼ö´ÜÀ¸·Î »ó¾÷Àû
ÀÀ¿ëÀÇ ¸ñÀûÀ» ´Þ¼ºÇϱâ À§ÇؼÀÌ´Ù.[Simon1]
±âÁ¸ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Ù °¢Á¾ ±â´ÉµéÀ» Ãß°¡ÇÏ°í °³¼±ÇÏ¿© Ȱ¿ëÇÏ´Â ¹æ¹ýµµ ÀÖÀ¸³ª
ÇÊ¿äÇÑ ¿ä°ÇµéÀÌ ÇÁ·ÎÅäÄÝ µ¿ÀÛÀÇ ±âº» ¸ðµ¨°ú °ü·ÃÇÑ °ÍÀ̱⠶§¹®¿¡ À̸¦ ¹Ù²ÙÁö
¾Ê°í¼´Â ¹®Á¦¸¦ ´õ º¹ÀâÇÏ°í ¾î·Æ°Ô ¸¸µç´Ù. ÀÌ¿¡ µû¶ó ´Ù¸¥ µ¿ÀÛ ¸ðµ¨À» »ç¿ëÇÏ¿©
»õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇϰíÀÚ ÇÏ´Â °ÍÀÌ´Ù.[Simon2]
»õ·Î¿î ÇÁ·ÎÅäÄÝÀ» °³¹ßÇϰíÀÚ ÇÒ ¶§ °ËÅäÇÒ ¼ö ÀÖ´Â ¿ä±¸»çÇ×µéÀº ¼¼ °¡Áö
´ë»ó¿¡ ´ëÇÑ °ÍÀ¸·Î ³ª´©¾îº¼ ¼ö ÀÖ´Ù. Áï, ´ÙÀ½°ú °°´Ù.
HTTP ÇÁ·ÎÅäÄÝÀÌ µ¿ÀÛÇÏ´Â ¹æ½ÄÀº ¾Æ·¡ ±×¸² 1°ú °°ÀÌ, ºê¶ó¿ìÀúÀÇ °¢ ¿ä±¸µé¸¶´Ù
¸Å¹ø »õ·Î¿î ¿¬°áÀ» ¸¸µé¾î¼ µ¥ÀÌŸ¸¦ °¡Á®¿À°í ÀÖ´Ù. µû¶ó¼ ´Ù¼¸ °¡ÁöÀÇ
¹®¼ ÈÀÏÀ» °¡Á®¿À±â À§Çؼ´Â ´Ù¼¸ °³ÀÇ ¿¬°áÀ» ¸¸µé¾î¼ °®°í ¿À°Ô µÈ´Ù.[Simon2]
ÀÌ¿¡ ºñÇØ, HTTP-NG ÇÁ·ÎÅäÄÝ ±¸Á¶¿¡¼´Â ´Ù¸¥ ¸ðµ¨À» »ç¿ëÇϰí ÀÖ´Ù. ´ÙÀ½ ±×¸² 2¿Í
°°ÀÌ °¢ ¹®¼ ¿ä±¸¿¡ ´ëÇØ º°µµÀÇ ¿¬°áÀ» ¸¸µé±â º¸´Ù´Â ¿©·¯ °³ÀÇ ¹®¼ ¿ä±¸¿¡ ´ëÇØ
ÇϳªÀÇ ¿¬°á¸¸ ¸¸µéµµ·Ï ÇÑ´Ù. ÀÌ ÇϳªÀÇ TCP ¿¬°á ¼Ó¿¡¼ '¼¼¼Ç(session)'À̶ó°í
ºÒ¸®¿ì´Â ¿©·¯ °³ÀÇ °¡»óÀû ¿¬°áÀ» ¸¸µéµµ·Ï ÇÑ´Ù. ÀÌ °¡¿îµ¥ Çϳª´Â ¼¼¼Ç ¿¬°á¿¡¼
Á¦¾î Á¤º¸¸¦ ÁÖ°í ¹Þ±â À§ÇØ ¾²ÀδÙ. ³ª¸ÓÁö ¼¼¼Ç ¿¬°á¼±¿¡ ½ÇÁ¦ µ¥ÀÌŸ°¡ Àü´ÞµÈ´Ù.
HTTP-NG¿¡¼ÀÇ ¿ä±¸/ÀÀ´äÀº '¸Þ½ÃÁö' ´ÜÀ§·Î 󸮵Ǹç, GET ¿ä±¸¸¦ ÅëÇØ
¹®¼¸¦ ¿ä±¸ÇÏ´Â °æ¿ì¿¡ ¿øÇÏ´Â ¹®¼ ¸ñ·ÏÀ» ÁöÁ¤ÇÏ¿© ¿ä±¸Çϰí, °¢°¢ÀÇ ¹®¼µéÀº
¼¼¼Ç ¿¬°áÀ» ÅëÇØ µ¿½Ã¿¡ Àü´ÞµÈ´Ù. µ¥ÀÌŸ¸¦ ¼ö½ÅÇϰí ÀÖ´Â µ¿¾È¿¡µµ ±â´Ù¸± ÇÊ¿ä¾øÀÌ
¹®¼ ¿äûÀ» ÇÒ ¼ö ÀÖÀ¸¸ç, ÇϳªÀÇ µ¥ÀÌŸ ½ºÆ®¸² ¼Ó¿¡ ¿©·¯ °³ÀÇ ¹®¼°¡ »çÀÌ»çÀÌ¿¡
³¢¾î ÀÖÀ» ¼ö ÀÖ´Ù. µû¶ó¼ Áß°£ °ÔÀÌÆ®¿þÀÌ ¿ªÇÒÀ» ÇÒ ¶§µµ ¼·Î ´Ù¸¥ ºê¶ó¿ìÀú°¡ °°Àº
¼¹ö¿¡ ´ëÇØ ¿ä±¸¸¦ ÇÒ ¶§ È¿À²ÀûÀ¸·Î µ¿ÀÛÇÒ ¼ö ÀÖ´Â ¼ö´ÜÀÌ µÈ´Ù.
HTTP ÇÁ·ÎÅäÄÝÀ» ÅëÇØ ¼Û¼ö½ÅµÇ´Â µ¥ÀÌŸ´Â ÅØ½ºÆ® Á¤º¸ ±×´ë·Î¿©¼ »ç¶÷µéÀÌ
ÀÌÇØÇϱ⠽¬¿î ÇüÅÂÀ̳ª ´Ù¾çÇÑ µ¥ÀÌŸ Çü½ÄÀÌ º¹ÇÕÀûÀ¸·Î ¾²ÀÏ ¶§´Â º¹ÀâÇÑ
±¸Á¶·Î Ç¥ÇöµÇ¾î¾ß ÇÏ°í ´Ù·ç±â°¡ ¾î·Á¿öÁø´Ù.
ÀÌ¿¡ µû¶ó HTTP-NG¿¡¼´Â Àü´ÞµÇ´Â ¹®¼ Á¤º¸µéÀ» ASN.1 (Abstract Syntax Notation)°ú
PER (Packed Encoding Rules) Çü½ÄÀ¸·Î ÀÎÄÚµùÇÏ¿© Àü´ÞµÇµµ·Ï ÇÑ´Ù. ÀÌ¹Ì ÀÌ ¹æ½ÄÀ¸·Î
µ¿ÀÛÇÏ´Â È¿À²ÀûÀÎ µµ±¸°¡ Àֱ⠶§¹®ÀÌ´Ù.
HTTP-NG ¸Þ½ÃÁö´Â µ¿ÀÛ ·¹º§¿¡ ´ëÇÑ Çù»ó °á°ú¿¡ µû¶ó ±³È¯µÈ´Ù.[Simon4]
TCP ¿¬°áÀÌ ÀÏ´Ü ¼³¸³µÇ°í ³ª¸é ¼¼¼Ç ¿¬°áÀ» À§ÇØ ÀÏ´Ü ¸ÕÀú Ãʱâȸ¦ ½ÃÄÑ¾ß ÇÑ´Ù.
ºê¶ó¿ìÀú´Â Çã¿ë °¡´ÉÇÑ methods (Method´Â ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô ÁöÁ¤ÇÏ´Â ¹®¼
µ¥ÀÌŸ¸¦ ¾î¶»°Ô ó¸®ÇØ ´Þ¶ó°í ÁöÁ¤ÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù. ¿¹¸¦ µé¾î GETÀ̶õ method¸¦
»ç¿ëÇÑ´Ù¸é ¼¹ö°¡ °®°í ÀÖ´Â ¹®¼ µ¥ÀÌŸ¸¦ º¸³» ´Þ¶ó´Â ¶æÀ̰í, DELETE¶õ method¸¦
»ç¿ëÇϸé ÁöÁ¤ÇÏ´Â ¹®¼¸¦ ¼¹ö¿¡¼ Áö¿ö´Þ¶ó´Â ¶æÀÌ´Ù. ÀÌó·³ ¸î °¡Áö Á¾·ùÀÇ
method¸¦ »ç¿ëÇÏ¿© ¾î¶² ¼¹ö µ¿ÀÛÀ» ¸í·ÉÇÒ °ÍÀÎÁö Á¤ÀÇÇÑ´Ù. ÀÌ·± methodsÀÇ
Á¾·ù·Î´Â GET, POST, DELETE, HEAD µî°ú °°Àº °ÍÀÌ ÀÖ´Ù.)¿Í µ¿ÀÛ ·¹º§À» ÁöÁ¤ÇÏ´Â
ÃʱâÈ ¿ä±¸¸¦ º¸³»°í, ¼¹ö´Â Çã¿ë °¡´ÉÇÑ methods¿Í »ç¿ëÇÒ µ¿ÀÛ ·¹º§À»
ÁöÁ¤ÇÏ´Â ÃʱâÈ ÀÀ´äÀ» ÇÑ´Ù. À̶§ ºê¶ó¿ìÀú´Â ÀÌ ÀÀ´äÀ» ¹ÞÁö ¾Ê°í¼µµ
¼¹ö¿¡°Ô ¿ä±¸¸¦ º¸³¾ ¼ö ÀÖ´Ù.
¸¸¾à ¼¹ö°¡ ó¸®ÇÒ ¼ö ¾ø´Â ¿ä±¸ »çÇ×À̶ó¸é ¼¹ö´Â ¿À·ù ÀÀ´äÀ» º¸³½´Ù.
ÀÌ·¯ÇÑ ÃʱâÈ ¿ä±¸¿Í ÀÀ´äÀº ¹Ýµå½Ã ¿¬°áÀÌ ¼³¸³µÇ°í ÃÖÃÊ·Î Àü´ÞµÇ¾î¾ß ÇÑ´Ù. ¸¸¾à
Çù»óÀÌ °¡´ÉÇÏ´Ù¸é ÃʱâÈ ¿ä±¸¸¦ º¸³»°í ³ª¼ Áï½Ã Çù»ó ¿ä±¸¸¦ º¸³¾ ¼ö ÀÖ´Ù. [Simon4]
ÃʱâÈ µ¿ÀÛÀÌ ³¡³ª°í ³ ´ÙÀ½¿¡´Â ½ÇÁ¦ÀûÀÎ µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇÑ ¿ä±¸¿Í ÀÀ´äÀ»
ÁÖ°í ¹ÞÀ» ¼ö ÀÖ´Ù. ¼¹ö´Â ºê¶ó¿ìÀú°¡ Çã¿ë °¡´ÉÇÏ´Ù°í ÁöÁ¤ÇÑ °Í À̿ܿ¡ ´Ù¸¥
¾î¶² ¸Þ½ÃÁöµµ º¸³»¾î¼´Â ¾È µÈ´Ù.
µ¥ÀÌŸ¸¦ ÁÖ°í ¹Þ´Â °¡¿îµ¥ ºê¶ó¿ìÀú´Â ¾ðÁ¦µçÁö µ¿ÀÛ ·¹º§°ú method¸¦ ¹Ù²Ù±â À§ÇØ
ÃʱâÈ ¿ä±¸¸¦ ´Ù½Ã ÇÒ ¼ö ÀÖ´Ù. ¼¹ö´Â »õ·Ó°Ô ¼ö½ÅÇÑ ÃʱâÈ ¿ä±¸¿¡ ´ëÇØ, ÀÌÀü¿¡
¼ö½ÅÇÑ ¸ðµç ¿ä±¸ »çÇ×µéÀ» ó¸®ÇÏ°í ³ ´ÙÀ½¿¡ ÃʱâÈ ÀÀ´äÀ» ÇØ¾ß ÇÑ´Ù. [Simon4]
¿À·ù°¡ ¹ß»ýÇÏ°Ô µÇ¸é ¿À·ù¸¦ ¾Ë¸®´Â ÀÀ´äÀÌ Àü´ÞµÈ´Ù. ¿À·ù°¡ ¹ß»ýÇÑ ÀÌÀ¯¿¡ ´ëÇØ
¹Ì¸® ÁöÁ¤µÇ¾î ÀÖ´Â ¼ýÀÚ ¹øÈ£·Î ¾Ë·ÁÁÖ°í, Ãß°¡ÀûÀ¸·Î ¾Ë·ÁÁÙ ¼ö ÀÖ´Â ¿À·ù ¸Þ½ÃÁö³ª
Á¤º¸µµ Æ÷Ç﵃ ¼ö ÀÖ´Ù. [Simon4]
ÀÌ¹Ì º¸³Â´ø ¿ä±¸ »çÇ×Àº ¾ðÁ¦µçÁö Ãë¼Ò°¡ °¡´ÉÇÏ´Ù. ¾ÆÁ÷ ¿Ï·áµÇÁö ¾Ê´Â µ¿ÀÛ¿¡
´ëÇÑ 'Ãë¼Ò¿ä±¸'¸¦ ¼¹ö°¡ ¼ö½ÅÇÏ¸é ¼öÇàÇϰí ÀÖ´ø ÀÛ¾÷À» Áß´ÜÇÑ´Ù.
¸¸¾à ºê¶ó¿ìÀú°¡ ¿øÇÏÁö ¾Ê¾Ò´ø µ¥ÀÌŸ¸¦ Æ÷ÇÔÇϰųª ¿øÇÏÁö ¾Ê¾Ò´ø ÀÀ´ä ¸Þ½ÃÁö°¡
µµÂøÇϸé -- ÀÌ¹Ì Çß´ø ¿ä±¸ »çÇ×À» Ãë¼ÒÇßÁö¸¸ ÀÀ´äÀÌ µµÂøÇßÀ» °æ¿ìµµ Æ÷ÇÔÇÏ¿© --
¼ö½ÅÇÏ°Ô µÈ´Ù¸é, Ãë¼Ò¿ä±¸¸¦ ¼¹ö¿¡°Ô º¸³»µµ·Ï ÇÑ´Ù. À̸¦ ÅëÇØ º¸´Ù ³ªÀº
¿¹Ãø ¾Ë°í¸®ÁòÀÌ µ¿ÀÛÇÒ ¼ö ÀÖ°Ô²û ÇÑ´Ù.
'Ãë¼Ò¿ä±¸'(Cancel Request)¿Í ÇÔ²² '´ë±â¿ä±¸'(Suspend Request)µµ °¡´ÉÇÏ´Ù. À̰ÍÀº
¼¹ö°¡ Àü¼Û Àç°³¸¦ ¿äûÇϰųª ºê¶ó¿ìÀú°¡ ´ë±â¿ä±¸¸¦ Ãë¼ÒÇϱâ Àü±îÁö µ¥ÀÌŸ Àü¼ÛÀ»
ÀϽÃÀûÀ¸·Î ÁߴܽÃŰ°í ´ë±â »óÅ·ΠµÎ°Ô²û ÇÏ´Â °ÍÀÌ´Ù. [Simon4]
ºê¶ó¿ìÀú´Â ¿¬°áÀ» ¾ðÁ¦µçÁö ²÷À» ¼ö ÀÖÀ¸¸ç ¼¹öµµ ¾ðÁ¦µçÁö ¿¬°áÀ» ²÷À» ¼ö ÀÖ´Ù.
ÀûÀýÇÏ°Ô 'ÇØÁ¦¿ä±¸'(Shutdown Request)¸¦ º¸³»¾î ÇØÁ¦ÇÒ ¼ö ÀÖ´Ù.[Simon4]
ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô ¿©·¯ °¡Áö ¹®¼ Àü¼ÛÀ» ¿ä±¸ÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÎ
°æ¿ìÀÌÁö¸¸, ¹Ý´ë·Î ¿©·¯ ºê¶ó¿ìÀú¿¡°Ô °æ°í ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¶§¿Í °°Àº
°æ¿ìµµ ÀÖ´Ù. ¶Ç´Â ºñ¿ë ÁöºÒÀ» ´©°¡ ´ã´çÇÒ °ÍÀÎÁö ¼¹ö´Â ¿©·¯ »ó´ë¿¡ ´ëÇØ
Çù»óÀ» ÇØ¾ßÇÒ °æ¿ìµµ ÀÖ´Ù. ÀÌ¿Í ÇÔ²², HTTP-NG´Â ¹®¼ÀÇ Á¾·ù¿¡ Á¦ÇÑÀ» µÎ°í
ÀÖÁö ¾Ê°í º¸¾È ¹× ÁöºÒ ¹æ½ÄÀÇ Á¦Çѵµ µÎ°í ÀÖÁö ¾ÊÀ¸¹Ç·Î ºê¶ó¿ìÀú¿Í ¼¹ö
»çÀÌ¿¡ ¾î¶² ¹æ½ÄÀ» »ç¿ëÇÒ °ÍÀÎÁö Çù»óÀÌ ÀÖ¾î¾ß ÇÑ´Ù.
HTTPÀÇ °æ¿ì¿¡´Â ºê¶ó¿ìÀú°¡ Çã¿ë °¡´ÉÇÑ °ÍµéÀ» ÁÖ·ç·è ³ª¿ÇÏ¿© ¼¹ö°¡ ¼±ÅÃÇÏ´Â
¹æ½ÄÀ¸·Î ÀÌ·ç¾îÁø´Ù. À̰°Àº ¹æ½Ä¿¡¼´Â Àü´ÞÇÏ´Â ¿ä±¸ µ¥ÀÌŸ Å©±â°¡ Ä¿Áö°í
±×¸¸Å ¼Û¼ö½Å¿¡ ½Ã°£ÀÌ °É¸®°í ó¸® ½Ã°£À» Áõ°¡½ÃŰ´Â ¼º´É»óÀÇ ¹®Á¦Á¡À»
ÀÏÀ¸Å²´Ù. ÀÌ·¯ÇÑ Á¤º¸°¡ ºê¶ó¿ìÀú ¿ä±¸ ÆÐŶÀÇ 95% ºÎºÐÀ» Â÷ÁöÇÑ´Ù.
HTTP-NG¿¡¼´Â ÀϹÝÀûÀ¸·Î °¡Àå ¸¹ÀÌ ¾²ÀÌ´Â µ¥ÀÌŸ Çü½ÄµéÀ» ¸ñ·ÏÀ¸·Î ¸¸µé¾î
©¸·ÇÑ ºñÆ®¸Ê Çü½ÄÀ¸·Î ÀÎÄÚµùÀ» ÇÑ´Ù. ¼¹ö¿Í ºê¶ó¿ìÀú´Â ÀÌ Á¤º¸¿Í ÇÔ²²
ÀÚ½ÅÀÌ Çã¿ë °¡´ÉÇÑ °ÍµéÀ» ÁöÁ¤ÇÏ´Â ¹æ½ÄÀ¸·Î Çù»óÀÇ °úÁ¤À» °ÅÄ£´Ù. À̸¦ À§ÇØ
Ãß°¡ÀûÀÎ ¼ýÀÚ Çü½ÄÀÇ ÆÄ¶ó¹ÌÅͰ¡ Ãß°¡µÇ¾î¾ß ÇÑ´Ù. security schemes,
authentication information, payment mechanisms µî¿¡ ´ëÇÑ Çù»óµµ °°Àº
¹æ½ÄÀ¸·Î ÀÌ·ç¾îÁø´Ù.[Simon2][Simon4]
Áö±Ý±îÁö Á¦¾ÈµÇ¾î ÀÖ´Â º¸¾È ¹æ½ÄµéÀº ºÎÁö±â¼ö·Î Á¸ÀçÇϱ⠶§¹®¿¡
HTTP-NG¿¡¼´Â Àû¿ëÇÒ ¼ö ÀÖ´Â ¿©·¯ °¡Áö º¸¾È ¿ä¼ÒµéÀ» °áÇÕÇÏ¿©
general security frameworkÀ» ¸¸µé°í ÀÖ´Ù. ¿©±â¼ ü°èÀûÀÎ ¼±Åà »ç¾ÈµéÀ»
Á¦½ÃÇϰí À̸¦ ¼±ÅÃÇÔÀ¸·Î½á ÀÌ¿ëÇϰíÀÚ ÇÏ´Â º¸¾È ¹æ½ÄÀ» ¼Õ½±°Ô
¼±ÅÃÇϰԲû Çϰí ÀÖ´Ù. À̸¦ ÅëÇØ °¢ HTTP-NG ¸Þ½ÃÁö¸¶´Ù ´Ù¸¥ º¸¾È ¹æ½ÄÀ»
»ç¿ëÇÒ ¼öµµ ÀÖ´Ù. HTTP-NG¿¡¼´Â Áß°£ °ÔÀÌÆ®¿þÀÌ ¿ªÇÒÀ» ÇÏ´Â ¼¹ö¿¡¼µµ
ÀÌ·± º¸¾È ¹æ½ÄÀ» Áö¿øÇϹǷΠµ¥ÀÌŸ ³»¿ë¿¡ ´ëÇØ ¼Õ´ëÁö ¾Ê°í ¾ÏÈ£È µÇ¾î
ÀÖ´Â µ¥ÀÌŸ¸¦ ±×´ë·Î Áß°èÇØ ÁÙ ¼ö ÀÖµµ·Ï Çϰí ÀÖ´Ù.[Simon2]
HTTP-NG´Â ºê¶ó¿ìÀúÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¼¹ö°¡ ´ë±Ý ÁöºÒ ¿äûÀ» ÇÒ ¼ö
ÀÖ°Ô²û Çϰí ÀÖ´Ù. À̸¦ À§ÇØ ÀûÀýÇÑ ÁöºÒ ¹æ½Ä°ú »ç¿ëÀÚ ÀÎÁõ ¹æ½Ä µî¿¡ ´ëÇÑ
»óÈ£°£ Çù»óÀ» ÇÏ¿©¾ß ÇÑ´Ù. ¶ÇÇÑ ¼¹ö´Â °¡°Ý Á¤º¸µµ ÇÔ²² Á¦°øÇÏ¿©¾ß ÇÑ´Ù.[Simon2]
ºê¶ó¿ìÀú°¡ ¿ä±¸ÇÑ Á¤º¸¿¡ ´ëÇØ »ç¿ëÀÚ¿¡°Ô º¸¿©ÁÙ ¶§ ÀúÀÛ±Ç »çÇ×°ú °°ÀÌ ÀÚµ¿ÀûÀ¸·Î
º¸¿©ÁÖ°Ô²û Çϱâ À§ÇØ Ãß°¡ÀûÀÎ ±â´ÉÀ» ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù.[Simon2]
HTTP 1.0 ÇÁ·ÎÅäÄÝ¿¡¼ HTTP-NG ÇÁ·ÎÅäÄÝ·Î ¿Å°Ü°¡±â À§ÇÑ ¹æ¹ýÀ¸·Î µÎ °¡Áö¸¦
Ȱ¿ëÇÒ ¼ö ÀÖ´Ù. ÇÑ °¡Áö ¹æ¹ýÀº HTTP 1.0°ú HTTP-NG¸¦ ÇÔ²² ±¸ÇöÇÏ¿© °¢°¢ÀÇ
ºê¶ó¿ìÀú ¿ä±¸¿¡ µû¶ó ÀÀÇÏ´Â Dual Stack approachÀÌ´Ù. ´Ù¸¥ ÇÑ °¡Áö ¹æ¹ýÀº
Proxy Server·Î¼ Ȱ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù.[Simon2]
µÎ °¡Áö¸¦ ÇÔ²² ±¸ÇöÇÏ´Â Dual Stack ¹æ½Ä¿¡¼´Â HTTP-NG¸¸ »ç¿ëÇÏ´Â ¸¸ÅÀÇ
¼º´É Çâ»óÀ» ±â´ëÇÒ ¼ö ¾ø´Ù. ±×·¯³ª Proxy Server ¹æ½Ä¿¡¼´Â ij½ÃµÇ´Â Á¤º¸°¡
Ç×»ó HTTP-NG ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇϹǷΠ»ó´çÇÑ Á¤µµÀÇ ¼º´É Çâ»óÀ» ±â´ëÇÒ ¼ö ÀÖ´Ù.
¶ÇÇÑ Proxy Server´Â °°Àº ¿¬°á ¼Ó¿¡¼ ¿©·¯ °³ÀÇ HTTP 1.0 ¿¬°áÀ» µ¿½Ã¿¡ ó¸®ÇÒ
¼ö ÀÖ´Ù.
FTP, GOPHER, HTTP µî°ú °°ÀÌ ÀÎÅͳݿ¡¼ Æø³Ð°Ô »ç¿ëµÇ°í ÀÖ´Â ÀÀ¿ëµéÀº ¹®¼¸¦
¿äûÇÒ ¶§¸¶´Ù ¸Å¹ø »õ·Î¿î ¿¬°áÀ» ¸¸µé¾î¼ °¡Á®¿Â´Ù. Åë»ó ºê¶ó¿ìÀú´Â ¸î °³ÀÇ
¹®¼¸¦ °°Àº ¼¹ö¿¡¼ °¡Á®¿À¹Ç·Î ÀÌ·¯ÇÑ ¹®¼ ¼Û¼ö½Å ¹æ½ÄÀº ºñÈ¿À²ÀûÀÎ °ÍÀÓ¿¡
Ʋ¸²¾ø´Ù. ±×·¡¼ ÇϳªÀÇ TCP ¿¬°á¿¡´Ù ¿©·¯ °³ÀÇ conversations, Áï session ¿¬°áÀ»
µÎ¾î º¸´Ù È¿À²ÀûÀ¸·Î µ¥ÀÌŸ ¼Û¼ö½Å 󸮸¦ ÇϰíÀÚ ÇÑ´Ù.[Simon3]
SCP¿¡¼ »ç¿ëÇÏ´Â Çì´õÀÇ ±¸¼º Çü½ÄÀ» º¸¸é ´ÙÀ½ ±×¸²°ú °°´Ù.
ÀÌ¹Ì ¾Õ¼ ¿°ÅÇß´ø HTTP ÇÁ·ÎÅäÄÝÀÇ ¹®Á¦Á¡µéÀÌ ÆÄ¾ÇµÇ¾î Àֱ⠶§¹®¿¡
ÇöÀç ÇÁ·ÎÅäÄÝÀ» °³¼±ÇϰíÀÚ ÇÏ´Â ³íÀǰ¡ ÀÌ·ç¾îÁö°í ÀÖÀ¸¸ç,
´Ù¾çÇÑ ÀÀ¿ëµé°ú »ç¿ëÀÚµéÀÇ ¿ä±¸»çÇ×À» ¹Ý¿µÇϰíÀÚ ÇÏ´Â ³íÀǰ¡ ÀÌ·ç¾îÁö°í ÀÖ´Ù.
¿©±â¿¡¼´Â ÇöÀç HTTP ÇÁ·ÎÅäÄÝ °³¹ß ÀÛ¾÷¿¡¼ ³íÀǵǰí ÀÖ´Â ÁÖ¿äÇÑ »çÇ׵鿡 ´ëÇØ
»ìÆìº¸°íÀÚ ÇÑ´Ù. ÀÌ·¯ÇÑ »çÇ×µéÀº ¾ÆÁ÷ ³íÀÇ ´Ü°è¿¡ Àֱ⠶§¹®¿¡ ÇâÈÄÀÇ HTTP »óÀ§
¹öÀü¿¡ ¹Ý¿µµÉÁö´Â ¾Ë ¼ö°¡ ¾ø´Ù.[Archive]
3.2 URI (Uniform Resource Identifiers)
3.2.1 ÀϹÝÀû Çü½Ä
3.2.2 HTTP URL Çü½Ä
3.2.3 Date/Time Çü½Ä
3.2.4 Character Sets
HTTP ÇÁ·ÎÅäÄÝ ±Ô°Ý¼¿¡¼´Â 'character set'À̶õ ¿ë¾î¸¦ MIME ±Ô°Ý¼¿¡¼
Á¤ÀÇÇÑ °Íµµ ¶È°°ÀÌ »ç¿ëÇÑ´Ù. Áï,
3.2.5 Content Codings
3.2.6 Media Types
3.2.7 Product Tokens
4. HTTP Message
4.1 HTTP ¸Þ½ÃÁö Á¾·ù
4.1.1 HTTP/0.9 ¸Þ½ÃÁö Çü½Ä
4.1.2 HTTP/1.0 ¸Þ½ÃÁö Çü½Ä
4.2 Message Headers
4.2.1 General Header Fields
4.2.2 Request Header Fields
4.2.3 Response Header Fields
4.2.4 Entity Header Fields
5. Request
5.1 Request-Line
5.1.1 Method
5.1.2 Request-URI
5.2 Request Header Fields
6. Response
6.1 Status-Line
6.1.1 Status-Code
6.1.2 Reason-Phrase
7. Entity
7.1 Entity Header Fields
7.2 Entity Body
8. Method Á¤ÀÇ
8.1 GET
8.2 HEAD
8.3 POST
9. »óÅ ÄÚµå Á¤ÀÇ (Status Code Definitions)
9.1 Informational 1xx
9.2 Successful 2xx
9.3 Redirection 3xx
9.4 Client Error 4xx
9.5 Server Error 5xx
10. Çì´õ Çʵå Á¤ÀÇ (Header Field Definitions)
10.1 Allow
10.2 Authorization
10.3 Content-Encoding
10.4 Content-Length
10.5 Content-Type
10.6 Date
10.7 Expires
10.8 From
10.9 If-Modified-Since
10.10 Last-Modified
10.11 Location
10.12 Pragma
10.13 Referer
10.14 Server
10.15 User-Agent
10.16 WWW-Authenticate
11. Á¢±Ù ÀÎÁõ (Access Authentication)
11.1 ±âº» ÀÎÁõ ü°è (Basic Authentication Scheme)
12. Âü°íÀÚ·á
HyperText Transfer Protocol - HTTP/1.1
(Korean Version 1.0)
1. ¼·Ð
2. HTTP/1.0 ÇÁ·ÎÅäÄÝÀÇ ¹®Á¦Á¡
3. HTTP/1.1 ÇÁ·ÎÅäÄÝÀÇ Æ¯Â¡
3.1 ¿ë¾î Á¤ÀÇ (Terminology)
3.2 ÇÁ·ÎÅäÄÝ ÆÄ¶ó¹ÌÅÍ
3.3 HTTP ¸Þ½ÃÁö
3.4 Request
3.5 Response
3.6 Entity
3.7 Connections
3.8 Access Authentication
3.9 Content Negotiation
3.10 Caching in HTTP
3.11 Çì´õ Çʵå Á¤ÀÇ
3.11.1 Host
3.11.2 Range
3.11.3 Upgrade
4. To the Future
5. Out of Scope of HTTP/1.1:
[4]
HTTP State Management Mechanism5.1 State & Sessions
5.2 ¼¹öÀÇ ¿ªÇÒ
5.2.1 ÀϹÝÀû µ¿ÀÛ
5.2.2 ij½Ì °ü¸®
5.3 Ŭ¶óÀÌ¾ðÆ® ¿ªÇÒ (User Agent Role)
5.3.1 Set-Cookie Àû¿ë
5.3.2 Cookie °ÅºÎ
5.3.3 Cookie °ü¸®
5.3.4 ¼¹ö·ÎÀÇ ÄíŰ Àü´Þ
6. Âü°íÀÚ·á
Protocol Extension Protocol (PEP)
(Korean Version 1.0)
1. ¼·Ð
2. PEP ¸ðµ¨
3. PEPÀÇ »ç¿ë¹ý
3.1 PEP È®Àå Çì´õÀÇ Ç¥Çö½Ä
{<protocol-identifier> {scope
(origin | conn)}
{str (opt | req | ref)}
{headers *<token>}
{params ...}
{for *<uri>}
{via <protocol-identifier>}}
3.2 PEP ÇÁ·ÎÅäÄÝÀÇ Çù»ó ³»¿ë ¿¹
3.3 Protocol-Query
3.3.1 Ŭ¶óÀ̾ðÆ®: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ Àü¼Û
3.3.2 ¼¹ö: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å
3.3.3 ¼¹ö: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ Àü¼Û
3.3.4 Ŭ¶óÀ̾ðÆ®: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å
3.4 Protocol-Info
3.4.1 Ŭ¶óÀ̾ðÆ®: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ Àü¼Û
3.4.2 ¼¹ö: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å
3.4.3 ¼¹ö: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ Àü¼Û
3.4.4 Ŭ¶óÀ̾ðÆ®: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å
3.5 Protocol-Request
3.5.1 Ŭ¶óÀ̾ðÆ®: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ Àü¼Û
3.5.2 ¼¹ö: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å
3.5.3 ¼¹ö: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ Àü¼Û
3.5.4 Ŭ¶óÀ̾ðÆ®: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å
3.6 Protocol
3.6.1 Ŭ¶óÀ̾ðÆ®: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼Û½Å
3.6.2 ¼¹ö: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å
3.6.3 ¼¹ö: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼Û½Å
3.6.4 Ŭ¶óÀ̾ðÆ®: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å
4. Âü°íÀÚ·á
HTTP Next Generation
1. ¼·Ð
1.1 HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ
1.1.1 Requests
GET /index.html HTTP/1.0
Accept: text/plain
Accept: text/html
Accept: */*
User-Agent: Netscape 1.2
1.1.2 Responses
HTTP/1.0 200 OK
Server: MDMA/0.1
MIME-version: 1.0
Content-type: text/html
Last-Modified: Thu Jul 7 00:25:33 1994
Content-Length: 2003
Right here waiting for you...
1.2 HTTP ÇÁ·ÎÅäÄÝÀÇ ¹®Á¦Á¡
1.3 HTTP Next Generation
2. HTTP-NG Activities
2.1 °³¿ä
2.2 »ç¿ëÀÚ ¿ä±¸»çÇ×
°¢ ´ë»óµéÀÌ °®´Â ÀÌ·± ¿ä±¸»çÇ×µéÀ» ÃæÁ·½ÃŰ´Â ÇÁ·ÎÅäÄÝÀÌ °³¹ßµÇ¾î¾ß ÇÑ´Ù.
À̸¦ À§ÇØ ÇÊ¿äÇÑ »çÇ×µé°ú ÇöÀçÀÇ TCP/IP ÇÁ·ÎÅäÄÝ»óÀÇ ¹®Á¦Á¡µéÀ» ³ª¿ÇØ º¸µµ·Ï ÇÑ´Ù.
2.3 ÇÁ·ÎÅäÄÝ ¸ðµ¨
[±×¸² 1] HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ ¸ðµ¨
[±×¸² 2] HTTP-NG ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ ¸ðµ¨2.4 HTTP-NG ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ
2.4.1 Request/Response Ordering
2.4.2 Initializing the Connection
2.4.3 Normal Message Exchange
2.4.4 Error Responses
2.4.5 Request Cancellation
2.4.6 Connection Shutdown
2.5 Negotiation
2.6 Security
2.7 Charging and Payment
2.8 Mandatory Display & Copyright Control
2.9 Transition from HTTP 1.0
3. Session Control Protocol (SCP)ÀÇ µ¿ÀÛ
3.1 ¸ñÀû
3.2 ¼³°è ¸ñÇ¥
3.3 ÇÁ·ÎÅäÄÝ ±¸¼º
[±×¸² 3] Çì´õ ±¸¼º Çü½Ä 3.4 ÇÁ·ÎÅäÄÝ µ¿ÀÛ
4. HTTP Development Issues
KeepAlive on | off
KeepAliveTimeout N
MaxKeepAliveRequests N
5. °á·Ð
ÇöÀç ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀº ¼º´É»óÀÇ ¹®Á¦Á¡À» ¸¹ÀÌ °®°í ÀÖÀ¸¸ç
Áö±Ýó·³ È®´ëµÇ°í ÀÖ´Â ¿©·¯ »ó¾÷Àû ÀÀ¿ëµéÀ» ÀûÀýÈ÷ Áö¿øÇØÁÙ ¼ö ÀÖÀ» ¸¸ÅÀÇ
±â´ÉÀ» Á¦°øÇÏÁö ÀÖÁö ¸øÇÏ´Ù. ÀÌ¿¡ µû¶ó ¼º´ÉÀ» °³¼±Çϰí Ãß°¡ÀûÀÎ ±â´ÉµéÀ»
Á¦°øÇϱâ À§ÇÑ HTTP ÇÁ·ÎÅäÄÝ °³¹ßÀÌ ÇÑâ ÀÌ·ç¾îÁö°í ÀÖÀ¸¸ç, µÎ °¡Áö Å« È帧ÀÌ
±âÁ¸ ÇÁ·ÎÅäÄÝÀÇ °³¼± ¹× È®ÀåÀÇ ¹æ¹ý°ú ¾Æ¿¹ ±âÁ¸ ÇÁ·ÎÅäÄÝÀ» ´ëüÇÏ´Â »õ·Î¿î
ÇÁ·ÎÅäÄÝÀÇ ¼³°è°¡ ±×°ÍÀÌ´Ù. ¿©±â¼´Â µÎ °¡Áö ¹æÇâ ¸ðµÎ¸¦ °³·«ÀûÀ¸·Î »ìÆì
º¸¾ÒÀ¸¸ç, Á¡Â÷ HTTP-NG °³¹ß ÀÛ¾÷Àº Áߴܵǰí HTTP-NGÀÇ ¿©·¯ °¡Áö °³³äµéÀÌ
HTTP »óÀ§ ¹öÀüÀÇ °³¹ß¿¡ Àû¿ëµÇ¸é¼ Ãß°¡ÀûÀ¸·Î ÇÊ¿äÇÑ ±â´ÉµéÀÌ È®ÀåµÇ´Â ¹æ½ÄÀ¸·Î
°³¹ßµÉ °ÍÀ¸·Î ÃßÃøÇÑ´Ù.
6. Âü°í¹®Çå(References)
URL:
http://www.w3.org/hypertext/WWW/Protocols/HTTP-NG/http-ng-status.html
URL:
http://www.w3.org/hypertext/WWW/Protocols/HTTP-NG/http-ng-arch.html
URL:
http://www.w3.org/hypertext/WWW/Protocols/HTTP-NG/http-ng-scp.html
URL:
http://sunsite.unc.edu/mdma-release/http-prob.html
URL:
http://hoohoo.ncsa.uiuc.edu/beta-1.5/howto/KeepAlive.html